読者です 読者をやめる 読者になる 読者になる

正規表現_基本メモ

注※(?=ABC)は、文字でなく位置にマッチするメタキャラクタ

 

メタキャラ説明
. なんでもいい 1 文字
* 直前の文字が 0~1 文字以上
+ 直前の文字が 1 文字以上
? 直前の文字が 0 または 1 文字
.*? 最短一致
hoge(?=ABC) hoge右側にABCがある場合一致 (肯定先読み)
hoge」まで一致する。
「hogeABC」の「ABC」までは一致しない。
hoge(?!ABC) hoge右側にABCがない場合一致 (否定先読み)
「hogeDE」の「hoge」に一致する。
右にABCがある「hoge」には一致しない。
(?<=ABC)hoge hoge左側にABCがある場合一致 (肯定戻り読み)
hoge」まで一致する。
「ABChoge」の「ABC」までは一致しない。
(?<!ABC)hoge hoge左側にABCがない場合一致 (否定戻り読み)
「DEhoge」の「hoge」に一致する。
左にABCがある「hoge」には一致しない。

 

「.*?」最短一致

「.*?」は、マッチする範囲を限りなく短くしようとする。

ex) AAABBCCABCCDDDEE

「^.*CC」だと「AAABBCCABCCDDDEE」と一致するが、

「^.*?CC」だと「AAABBCC」に一致する。

 

よく分からん。
今の理解だと実用できなさげ。だが今日は以上。