🤗
正規表現の特殊文字のまとめ
正規表現(Regular Expression)
初めての投稿ということで、オーソドックスで忘れがちな正規表現の特殊文字についてまとめました。
正規表現の主な特殊文字一覧
文字 意味
. 任意の1文字(改行以外)
^ 行の先頭を表す
$ 行の末尾を表す
* 直前の文字の0回以上の繰り返し
+ 直前の文字の1回以上の繰り返し
? 直前の文字の0回または1回の出現(または非貪欲)
[] 中のいずれか1文字にマッチ(文字クラス)
[^] 中の文字以外にマッチ(否定文字クラス)
() グルーピング、キャプチャ
\ エスケープ(上記の特殊文字を普通の文字に)
用語
上の表で出てきた用語の解説を施します。
貪欲&非貪欲
「?」という特殊文字で、非貪欲という表現がありました。これは一体どういう意味でしょうか。
貪欲という言葉は、非常に欲深いことを指しますね。
一方で非貪欲は、慎ましいことを指します。
これが、ワイルドカードの場合に適用されるとどうなるでしょう。
例えば
re1 = "ab+c" # 貪欲
re2 = "ab+?c" # 非貪欲
text = "a11c22c" #マッチ先文章
という正規表現があった時、貪欲はとにかく長くマッチします。だから、re1は最大まで伸びて"a11c22c"にマッチ。
一方非貪欲は1番短い表現にマッチするので、re2は"a11c"にマッチします。
終わりに
以上です。今は短いですが、筆者の学習度合いによって更新していきます。
ご覧いただきありがとうございました。
Discussion