先読みを使ったパターン
【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1
■先読みをパターン内で使用する場合、先読みを行うパターンを「(?=」から「)」の間に記述します。
/パターン(?=先読みパターン)パターン/
例文
/(a)(...)(b)/
例として上記のような正規表現オブジェクトを作成します。この正規表現は「a」で始まり、任意の文字が3文字続き、最後に「b」で終わる文字列にマッチします。
○ a012b
○ aboub
× awoomgb
× ab
今度は真ん中のパターンが先読み
/(a)(?=...)(b)/
今度の正規表現は「a」で始まり、「a」の後に任意の文字が3文字続くかどうかだけを確認し、マッチしていれば改めて「a」の後に「b」が続く文字列にマッチします。結果的に「a」の後に「b」で始まり任意の文字が2文字続く文字列にマッチします。
× a012b
○ aboub
× awoomgb
× ab
サンプルプログラム
![](https://blogimg.goo.ne.jp/user_image/67/77/53914427d790b3ebd957c60b0289527d.jpg)