職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

直前の文字を指定した範囲の回数繰り返し({min,max})

2021年09月29日 | Ruby3.0.1
直前の文字を指定した範囲の回数繰り返し({min,max})

【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

【min,max】
直前の文字を指定した範囲の回数だけ繰り返し表れる場合にマッチするパターンを定義できます。例えば3回から7回まで繰り返される場合にマッチさせたりすることが出来ます。

範囲の回数の指定方法は次の通りです。
{min,max}

例えば直前の文字が2回から4回の範囲で繰り返し現れる場合にマッチする場合は次のように記述します。
/Go{2,4}gle/
上記の場合、直前の文字(今回は「o」)が指定した範囲の2回から4回の間繰り返し現れた場合にマッチします。その為、今回の場合でマッチするのは「oo」「ooo」「oooo」の場合です。

【引数を省略する】
2番目の引数は省略することが可能です。2番目の引数を省略すると、直前の文字の最小出現回数だけが設定されます。上限はありません。
{min,}
例文
/Go{2,}gle/
マッチするもの:
Google
Gooogle
Goooogle
Gooooogle
Goooooogle

【回数を指定する】
括弧{}の中に数値を1つだけ指定すると指定した回数だけ直前の文字が現れる場合にマッチします。

・書式
{num}

・例文
/Go{3}gle/
マッチするもの:
Gooogle

【メタ文字「*」「+」「?」との関係】
範囲指定を使えばアスタリスク(*)、プラス(+)、クエスチョン(?)のメタ文字を範囲を使って表すことが出来ます。

* {0,} 直前の文字を0回以上繰り返し
+ {1,} 直前の文字を1回以上繰り返し
? {0,1} 直前の文字が0回か1回

サンプル「test5-1.rb」
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

直前の文字を0回か1回(?)

2021年09月28日 | Ruby3.0.1
直前の文字を0回か1回(?)

【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1


【?】
メタ文字の1つであるクエスチョン(?)をパターンの中に記述すると、クエスチョンの直前にある文字が0回か1回現れた文字列にマッチします。0回でも可なので直前の文字が存在しなくてもマッチします。

例文
/Go?gle/
上記の場合、クエスチョン(?)は直前の文字(今回は「o」)に0回か1回現れたものにマッチします。

サンプルプログラム「test4-1.rb」



コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

直前の文字を1回以上繰り返し(+)

2021年09月28日 | Ruby3.0.1
直前の文字を1回以上繰り返し(+)

【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

■メタ文字の1つであるプラス(+)をパターンの中に記述すると、プラスの直前にある文字が1回以上繰り返された文字列にマッチします。アスタリスク(*)と異なり最低でも1回は直前の文字が必要となります。

例文
/Go+gle/
上記の場合、プラス(+)は直前の文字(今回は「o」)に1回以上繰り返したものにマッチします。1回以上というのは「o」が必ず1回は必要になりますので「o」や「oooo」などにマッチするということになります。

マッチしないもの
Ggle
Gooopgle
マッチするもの
Gogle
Gogle
Google
Gooogle
Goooogle

サンプルプログラム「test3-1.rb」

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

直前の文字を0回以上繰り返し(*)

2021年09月26日 | Ruby3.0.1
直前の文字を0回以上繰り返し(*)

【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

■メタ文字の1つであるアスタリスク(*)をパターンの中に記述すると、アスタリスクの直前にある文字が0回以上繰り返された文字列にマッチします。0回でも可なので直前の文字が存在しなくてもマッチします。

例えば
/Go*gle/
上記の場合、
アスタリスク(*)は直前の文字(今回は「o」)に0回以上繰り返したものにマッチします。
0回以上というのは「o」が無い場合と「o」や「oooo」など「o」が1回以上繰り返されている文字マッチするということになります。(直前の文字が無い場合は、空文字にマッチしていることになります)。

サンプルプログラム「test2-1.rb」

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

任意の文字と繰り返し(量指定子)

2021年09月26日 | Ruby3.0.1
任意の文字と繰り返し(量指定子)

【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1


■パターンを定義する時に任意の文字を使用したい場合や、指定した文字が繰り返し出現するパターンを作成したい場合の記述方法を確認します。ここでは任意の文字を表現する方法や特定の文字に対する繰り返し指定の方法を確認していきます。

【任意の一文字(.)】
メタ文字の1つであるドット(.)をパターンの中に記述すると改行(¥n)を除く任意の一文字にマッチします。

例文
/ab.cd/
上記の場合、ドット(.)は任意の一文字にマッチしますので「abfcd」や「ab0cd」などドット(.)が記述された位置にどんな文字が書かれている場合もマッチすることになります。

サンプルプログラム「test1-1.rb」
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする