直前(直後)に特定の文字列がある(無い)場合を対象とする正規表現

2020年1月3日(更新: 2020年1月3日)

ある文字列が直前や直後に付いている(付いていない)テキストを選択したい場合の正規表現の記述方法についてです。

正式には、直後のことを先読み直前のことを後読み存在することを肯定存在しないことを否定と言うそうです。

実際の正規表現とその読み方を以下の表にまとめます。

読み方 正規表現 説明
肯定先読み マッチさせたい文字列(?=パターン) 直後にパターンがある場合
肯定後読み (?<=パターン)マッチさせたい文字列 直前にパターンがある場合
否定先読み マッチさせたい文字列(?!パターン) 直後にパターンが無い場合
否定後読み (?<!パターン)マッチさせたい文字列 直前にパターンが無い場合

「マッチさせたい文字列」が対象となり、「パターン」の部分は選択範囲には含まれません。否定する場合は、肯定の「=」を「!」に書き換えます。

これらを用いると、例えばHTMLタグのような「<」と「>」で囲まれた中身のテキストだけを選択する正規表現を書くことができます。

(?<=<)[^<>]+(?=>)

この正規表現の結果は以下のようになります。

肯定先読みおよび肯定後読みを利用した正規表現

コメントを残す

メールアドレスが公開されることはありません。