皆さま、こんにちは。ホンヤク社の成田です。
ここのところ「暑い」としか発信していない気がしますが、今週もやはり暑かったです。皆さまはいかがお過ごしでしょうか。
本日は、前回に引き続き「[ ]」と「-」を組み合わせたワイルドカードについてお話しします。前回は [ぁ-ん] や [a-z] など、範囲指定の考え方をわかりやすくするために種類ごとに限定するような形でご紹介しましたが、もっと大きな枠組みや組み合わせでの範囲指定をすることも可能です。
<使用例>
[ぁ-んァ-ーヲ-゚]
⇒ ひらがな、全角カタカナ、半角カタカナ1文字がヒットします。前回ご紹介した範囲指定を [ ] の中に続けて記述するとこのような検索が可能です。
[0-90-9]
⇒ 全角・半角を問わず数字1文字がヒットします。
[\!-~]
⇒ 半角記号あるいは半角英数字1文字がヒットします。この範囲指定で含まれる記号は「!”#$%&'()*+,-./:;<=>?@[\]^_`{|}~」で、よく使われるものは網羅されていますが、比較的マイナーな記号でここに含まれていないものもあるためご注意ください。
◆エスケープについて◆
上記では「\!」となっていますが、入力ミスではありません。「!」は以前にご紹介したように、[!] が「指定文字以外の1文字」を表すワイルドカードであるため、「!」という文字そのものを検索したい場合は「『!』をワイルドカードとして使用しない」と表わす必要があります。上記のように「!」の前に「\」を付けることで、「!」はワイルドカードではない文字として取り扱われます。これを「エスケープ」と言います。
[\!-~°©»]
⇒ 範囲指定に単独の文字を付け足すようなことも可能です。たとえば、上記の [\!-~] に含まれない「°」「©」「»」の3文字も一緒に検索したいときに、この例のように任意で付け足した上でまとめて検索できます。
[、-鶴] ※「鶴」は、「つる」で変換して出てくる「鶴」とは少し違う字です。
⇒ 前回はご紹介しませんでしたが、漢字を検索することも可能です。上記は、ひらがな、全角カタカナ、漢字、全角記号のうち1文字がヒットします。[ -鶴0-9a-zA-Z](最初の文字は全角スペース)のようにすると、スペースや英数字を含むほぼすべての全角文字を検索できます。
いかがでしたでしょうか? 範囲指定を駆使することで、対象を絞り込んだ上でさまざまな種類のテキストを検索できることがおわかりいただけたかと思います。
なお、これまでは1文字を検索する方法を紹介してきましたが、[ ] を複数組み合わせることで2文字以上の検索も可能です。たとえば、[0-9][0-9] とすると連続する半角数字2文字が、[ぁ-ん][ぁ-ん][ぁ-ん] とすれば連続するひらがな3文字が、[A-Z][a-z][a-z] とすれば1文字目が大文字でそのあとに2文字の小文字が続く英字3文字がヒットします。このような応用的な使い方は、またあらためてお話ししたいと思います。
次回は、「単語の先頭文字」を表す「<」と「単語の末尾文字」を表す「>」についてお話しします。