Last modified: May 19, 2000 (English Version)

「正規表現」検索について 

 染谷泰正


正規表現 (regular expression) とは、特殊な記号を使って文字列の組み合わせ(パターンマッチング)を指定する方法です。詳しくは専門の参考書を参照していただくとして、以下、Online BLC Concordancer を使うに当たって覚えておくと便利な正規表現のいくつかについて簡単に説明します。

1.  通常の英数字

通常の英数字はそのままマッチします。
 
指定文字  マッチ
a a
word word
123 123
this word this word

2. 主な正規表現とその意味
 
記号 意味
 * その前の1文字の0回以上の繰り返し
 + その前の1文字の1回以上の繰り返し
 . 空文字(半角スペース)を含む任意の1文字とマッチ
 ^ 行頭にマッチ(キャラクタークラスの中で使われた場合はその後の文字列の「否定」
の意味になる) => 注参照 
 [   ]  キャラクタークラス
 (   ) グルーピング
 | 選択

注) 現在の BLC Concordancer では、使用しているコーパスのデータ構造の制約から ^ 記号(通例、キャレット (caret) と呼んでいるようです)は無効になっています。ただし、キャラクタークラスの中では使うことができます。
 

 例
 
 正規表現 マッチング
 a*  a という文字の0回以上の繰り返しにマッチ (e.g. 空文字列,a,aa,aaa,......)
 a+  a という文字の1回以上の繰り返しにマッチ (e.g. a, aa, aaa, ...)
 ... 半角スペースを含む任意の任意の3文字の連続にマッチ(前後に半角ス
ペースを加えれば「任意の3文字からなる単語」の意味になる)
 ^Word  行頭の Word という単語にマッチ (=> ただし現在は使用不可)。
 [abc]  a,b,c のいずれかにマッチ
 [a-z]  小文字1文字にマッチ
 [A-Z]  大文字1文字にマッチ
 [0-9] 数字1文字にマッチ
 [a-zA-Z0-9]  英数字のいずれか1文字にマッチ
 [a-z]+  小文字からなる1単語にマッチ(単語単位で指定する場合は前後に半角
スペースを加えるのがよい)
 [A-Za-z]+ 任意の1単語にマッチ(同上)
 [^a-zA-Z]  英字以外のいずれか1文字にマッチ(半角スペース、句読記号、数字など
にマッチ)
 (aaa|bbb|ccc)  aaa, bbb, ccc のいずれかの文字列にマッチ
 ab(c|cd|cde)  abc, abcd, abcde のいずれかにマッチ

なお、上記のとおり正規表現で使われる記号や文字(「メタ文字」と呼ぶ)は特殊 な意味を持ちますので、これらの記号・文字そのものを検索する場合はその前にエスケープ 記号(日本語キーボードでは半角のマーク、英語キーボードではバックスラッシュ ( \ ) -- 現在の BLC Concordancer では自動的に後者になります) を加えます。たとえば + 記号そのものにマッチさせたい場合は ¥+  となります。 したがって、+123 や +547のように +記号を頭に持つ数字列に一致させたい場合の検索式は ¥+[0-9]+ となります(ただし、現在の BLC にはこの用例はありません)。

同様に、たとえば (s), (txt), (Japan) のような丸カッコに囲まれた文字列に一致させた い場合の検索式は ¥([a-zA-Z]+¥) となります。ただし、現在の BLC データでは原則として句読点記号の前後に1文字分のスペースが入っていますので、これを考慮に入れる必要があります。したがって、この検索式は .¥(.[a-zA-Z]+.¥). または  .¥(.[a-zA-Z]+  のように丸カッコの前後にスペース相当のピリオドを加えたものにします。これで、( s ), ( txt ), ( Japan ) のような文字列にマッチします。

最初はかなり面倒ですが、いろいろ試しているうちに慣れてきます。なお、うまくいかない場合は正規表現検索式が正しいかを確認してからもう一度トライしてください。それでもだめなら諦めて別の方法を考えてください(どういうわけか、サーバーのほうで受け付けないことがあります)。

もっと詳しい勉強したい方はこちらへ(ただし英語です)。



Back to BLC Concordancer 
 
 

(c) 2000 Yasumasa Someya