ある文字列が直前や直後に付いている(付いていない)テキストを選択したい場合の正規表現の記述方法についてです。
正式には、直後のことを先読み、直前のことを後読み、存在することを肯定、存在しないことを否定と言うそうです。
実際の正規表現とその読み方を以下の表にまとめます。
読み方 | 正規表現 | 説明 |
---|---|---|
肯定先読み | マッチさせたい文字列(?=パターン) | 直後にパターンがある場合 |
肯定後読み | (?<=パターン)マッチさせたい文字列 | 直前にパターンがある場合 |
否定先読み | マッチさせたい文字列(?!パターン) | 直後にパターンが無い場合 |
否定後読み | (?<!パターン)マッチさせたい文字列 | 直前にパターンが無い場合 |
「マッチさせたい文字列」が対象となり、「パターン」の部分は選択範囲には含まれません。否定する場合は、肯定の「=」を「!」に書き換えます。
これらを用いると、例えばHTMLタグのような「<」と「>」で囲まれた中身のテキストだけを選択する正規表現を書くことができます。
(?<=<)[^<>]+(?=>)
この正規表現の結果は以下のようになります。