正規表現 組み合わせ例その10 特定の条件の単語

原文ファイルのトリセツ

皆さま、こんにちは。ホンヤク社の成田です。
大型連休真っ只中です。今年は、長い方は12連休を取っているとニュースで聞き、うらやましい限りです。当社はカレンダー通り営業しております。
 

今回は、特定の条件の単語を表す正規表現についてご紹介します。以前に、単語の境界を表す「\b」についてお話ししましたが、今回は「\b」と他の要素を組み合わせて、さまざまな条件の単語を検索する例を挙げていきます。

 

<組み合わせ例>
\bs[a-z]+\b
⇒ 小文字の「s」で始まる単語がヒットします。「s」の後は「[a-z]」が「+」(1文字以上)となっていますので、「s」で始まるあらゆる種類のあらゆる長さの単語がヒットします。当然ながら、「sonj」「sdfgh」のようなスペルミスや意味をなさないものもヒットします。

 

\b[aA][a-z]*\b
⇒ 小文字か大文字の「a」「A」で始まる英単語がヒットします。後ろに続く文字は「[a-z]」が0文字以上なので、「a」も「an」も「A」も「An」も「and」も「Andrew」もすべてヒットします。

 

\b[A-Z][a-zA-Z]*\b
⇒ 最初の文字が大文字の「[A-Z]」で、続く文字が「[a-z]」あるいは「[A-Z]」なので、大文字のアルファベットで始まる単語や「NATO」「BRICs」といった大文字のみや大文字と小文字が混在する単語がヒットします。なお、「[a-z]」はあくまでも英語のアルファベット26文字を対象としていますので、ヨーロッパ言語などでみられるアクセント付き文字(「À」「ü」「ñ」「ç」など)を含んだ単語をヒットさせるには別途対処する必要があります。

 

\b\w*s\w*\b
⇒ 「[a-zA-Z]」の代わりに「\w」を使うことも可能です(アンダースコアや全角文字も含まれてしまうことに注意が必要ですが)。この例は「s」の前後に「\w」が0文字以上となっているため、「s」を含む(単語の最初や最後でもOKです)単語がヒットします。

 

いかがでしたでしょうか? 「\b」と他の要素を組み合わせることで、さまざまな条件で単語を検索できることがおわかりいただけたら幸いです。

次回からは、応用的な正規表現の例をご紹介していきたいと思います。