正規表現(せいきひょうげん)は、特定のパターンに一致する文字列を検索するための強力なツールです。今回は、その中でも「先読み」と「後読み」というテクニックを簡単に紹介します。これらを使うと、より複雑な条件で文字列を見つけることができるようになります。
先読みは、あるパターンがその後に続く文字列に存在するかどうかを確認する仕組みです。これにより、ある文字列が特定の条件を満たしているかを調べることができます。
先読みを使うには、パターンの後ろに「(?=...)」という形式を用います。ここで「...」は、先読みしたい条件を記述します。
正規表現: /abc(?=def)/
この正規表現は、「abc」があり、その後に「def」が続く文字列にマッチしますが、「def」は実際には結果に含まれません。
後読みは、先読みの逆で、あるパターンの前に特定の条件があるかどうかを調べるものです。これを使うことで、前にある文字列が特定の条件を満たしているか見つけることができます。
後読みは、パターンの前に「(?<=...)」という形式を用います。この「...」の部分で確認したい条件を記述します。
正規表現: /(?<=abc)def/
この正規表現は、「abc」の後に続く「def」にマッチしますが、「abc」は結果に含まれません。
それでは、実際の例を見てみましょう。例えば、メールアドレスを検証する際に、特定のドメインを持つかどうか確認する場合があります。
正規表現: /[a-zA-Z0-9._%+-]+@example\.com(?=\.jp)/
この正規表現では、「@example.com」の後に「.jp」が続くメールアドレスにマッチします。
正規表現: /(?<=\d{3}-)\d{4}/
こちらの正規表現では、3桁の数字の後に続く4桁の数字にマッチします。「123-4567」の場合、「4567」が結果に含まれます。