皆さま、こんにちは。ホンヤク社の成田です。
かなり暑い日が続いています。皆さまお住いの近辺は大丈夫でしょうか。
今回は、先読みと否定先読みについてもう少し例を紹介します。これまでは基本的な使用法についてお話ししましたが、多少応用的な要素も含めた例を挙げていきたいと思います。
例
\b\w+\b+(?= prefecture)
⇒「prefecture」の前にある英単語にヒットします。「Aomori」「Akita」「Iwate」「Yamagata」「Fukushima」といった単語のみを検索したい場合にこのような正規表現を使うと便利でしょう。なお「Prefecture」の大文字の可能性もあるときには「\b\w+\b+(?= [pP]refecture)」としてください。いずれにしても半角スペースを入れることをお忘れないようにしてください。
(?!.*\-)\d+
⇒たとえば「090-1234-5678」「03-6841-1121」などの電話番号が検索対象テキストで、下4桁のみをヒットさせたい場合にこのような正規表現を使うことができます。否定先読みを使った「(?!.*\-)」とすることで最後のハイフンの位置を特定し、そのあとに続く数字を「\d+」で表しています。なお、検索対象テキストにハイフンのない場合は、出現する数字すべてがヒットします。
(?!\w{6})\w+
⇒1~5文字の英単語はすべて、6文字以上の英単語は末尾の5文字分がヒットする正規表現です。上の例と同様に「(?!\w{6})」という否定先読みを使って後ろに6文字が続かない位置を特定し、そのあとに続くテキストを「\w+」で表しています。
いかがでしたでしょうか? 先読みや否定先読みを利用して、さまざまな検索ができることがおわかりになれば幸いです。
次回は、後読みについてお話しします。
