正規表現「[ ]」(指定文字のうちいずれか1文字)編(その1)

原文ファイルのトリセツ

皆さま、こんにちは。ホンヤク社の成田です。
年が明けたかと思ったら、もう1月も終わりです。寒い日が続いていますが、皆さまいかがお過ごしでしょうか。

 

本日からは「[ ]」という正規表現をご紹介します。MS Wordのワイルドカードと同様に「[ ]」の中に文字を指定して、その中のいずれかの1文字があてはまるものを検索できる正規表現です。また、正規表現でも「全角数字」や「半角カタカナ」などの文字種を指定したり、「{n}」と組み合わせてさまざまな使い方ができたりします。

 

[ ] ※[ ] 内に文字を入れて使用します
「指定文字のうちいずれか1文字」を表す正規表現です。

 

<使用例>
[小中]学校
⇒ 「小学校」と「中学校」がヒットします。

 

××町[東南北]一丁目
⇒ 「××町東一丁目」「××町南一丁目」「××町北一丁目」がヒットします。「××町西一丁目」はヒットしません。また、「××町[東南北][一二三]丁目」とすると、「××町南二丁目」「××町北三丁目」など、指定文字のあらゆる組み合わせの文字列がヒットします。

 

[012345679]年
⇒ 「0年」「1年」「2年」「3年」「4年」「5年」「6年」「7年」「9年」がヒットします。[ ]内に「8」はないため「8年」はヒットしません。また、「10年」「234年」なども数字が2文字以上であるためヒットしません。

 

また、[ ] は「^」と組み合わせて、指定文字以外の1文字を表す正規表現として使用できます。ワイルドカードの時は「!」との組み合わせでしたが、正規表現では「^」(キャレット)を使用します。

 

[^]
「指定文字以外の1文字」を表す正規表現です。

 

[^小中]学校
⇒ 「学校」の前に「小」「中」以外の1文字がつく文字列、たとえば「大学校」や「私学校」などがヒットします。なお、「高等学校」の「等学校」の部分などもヒットします。

 

××町[^西]一丁目
⇒ 「××町東一丁目」「××町南一丁目」「××町北一丁目」など、「××町」と「一丁目」の間に「西」以外の1文字が入っている文字列がヒットします。

 

[^8]年
⇒ 「0年」「1年」「2年」「3年」「4年」「5年」「6年」「7年」「9年」がヒットしますが、それ以外に「今年」「新年」などといった文字列もまとめてヒットします。

 

いかがでしたでしょうか? [ ] と [^] の基本的な使用方法がおわかりいただけたかと思います。

次回は、「[ ]」と「-」(ハイフン)を使った文字の種類別の検索方法についてご紹介します。