後読みの正規表現をはじめて使った

A8バナー広告

要するにやりたかったこと

っていう文字列を、こういう風に分解したい。

どうするか?

この正規表現を書く

そもそも後読みの正規表現ってどうして必要?

例外の文字列を定義したい時に使う。例外の文字を定義するだけなら、^メタ文字で例外定義できる。

でも、2文字以上の文字列は後よみ(先読み)の例外定義が必要。

今回は ( ) の中に囲まれた文字列を獲得したいので、対象が文字列になる。

したがって、後読み(先読み)の正規表現が必要。

そもそも後読みと先読みの正規表現?

この記事この記事をみると良いと思う。

今回はどこか後読み?

まず(?<!A|B|C)。この否定が存在しないと、A or B or C直後の ) で正規表現のマッチがはじめってしまう。

次に(?<!\d回目)。この否定が存在しないと、1つ目の ) で正規表現のマッチが終わってしまう。
※ 別解的に ) の出現回数を定義しても、解決できる。

実は・・・

いままで後読みと先読みを使ったことがなかった。

正規表現と後処理で、むりやりに解決していた。

でも、今回のように後読みと先読みでスッキリ解決?