正規表現で論理積を表現する方法
よく使うけど忘れてしまいそうになる正規表現の特殊な文字 (メタキャラクタやパターン) をメモしておきます。
- 「^」: 行頭
- 「$」: 行末
- 「\A」: 文字列先頭
- 「\Z」: 文字列末尾 (末尾が改行ならその改行の直前)
- 「\z」: 文字列末尾
- 「\b」: 語の境界 (\w と \W の間)
- 「\B」: 非語境界
- 「\G」: 前回マッチした箇所の直後 (初回のみ \A と同じ先頭)
ファイルを grep するときに AND 検索 (論理積検索) を行いたい場合、以下のようにします。この例では、同一行内に「東京」と「大阪」、「愛知」が入っている場合にマッチします。 (単純な AND 検索なので、記述順は何でも大丈夫です。)
^(?=.*愛知)(?=.*大阪)(?=.*東京).*$