正規表現で論理積を表現する方法

よく使うけど忘れてしまいそうになる正規表現の特殊な文字 (メタキャラクタやパターン) をメモしておきます。

  • 「^」: 行頭
  • 「$」: 行末
  • 「\A」: 文字列先頭
  • 「\Z」: 文字列末尾 (末尾が改行ならその改行の直前)
  • 「\z」: 文字列末尾
  • 「\b」: 語の境界 (\w と \W の間)
  • 「\B」: 非語境界
  • 「\G」: 前回マッチした箇所の直後 (初回のみ \A と同じ先頭)

ファイルを grep するときに AND 検索 (論理積検索) を行いたい場合、以下のようにします。この例では、同一行内に「東京」と「大阪」、「愛知」が入っている場合にマッチします。 (単純な AND 検索なので、記述順は何でも大丈夫です。)

^(?=.*愛知)(?=.*大阪)(?=.*東京).*$