1. 正規表現 (Regular Expression)一覧(一部)
※ バックスラッシュ( \ )は、日本語環境では ¥ と表示される場合がある
. 改行文字以外の任意の1文字にマッチ
a* 文字 a が0文字以上続いているときにマッチ
a+ 文字 a が1文字以上続いているときにマッチ
a? 文字 a が0文字か1文字あるときにマッチ
(a) 正規表現 a をグループ化.\nで参照可.
\n ( )でグループ化した正規表現にマッチした内容がそのまま入る
[c1c2] [ ]で囲んだ文字群のいずれか1文字にマッチ
[^c1c2] [ ]で囲んだ文字群以外のいずれか1文字にマッチ
a{n} a を n 回繰り返す文字列にマッチ
a{n,} a を n 回以上繰り返す文字列にマッチ
a{n, m} a を n 回から m 回繰り返す文字列にマッチ
a|b a または b にマッチ
\b 語の境界(boundary)にマッチ
\s 空白文字(スペース文字,タブ,改行)の1文字にマッチ
\S 空白文字(スペース文字,タブ,改行)以外の1文字にマッチ
\w [a-zA-Z0-9_] と同じ
\W [^a-zA-Z0-9_] と同じ
\d [0-9] と同じ.数字1文字にマッチ
\D [^0-9] と同じ.数字以外の1文字にマッチ
2. 正規表現を使った検索例※ 言語分析のための正規表現について詳しく学びたい場合は、以下の書籍が参考になる。
- tall という単語を検索
/tall/ で検索してみる
→ tall という文字列を含む語が検索されてしまう
(正規表現の検索は部分一致検索のため)
ヒント: 語の境界(\b)を指定する
/\btall\b/
- st で始まり tionで終わる11文字の単語
/\bst\w\w\w\w\wtion\b/ または /\bst\w{5}tion\b/
- woman と women という単語のどちらかを含む文
/\bwom[ae]n\b/
- happy を語幹とする単語の検索
ヒント: 語尾変化だけでなく,prefixが付く場合も考慮
/\b(un)?happ(y|ier|iest|ily|iness)\b/
- in order that ... と in order for ... to 〜 の両方の構文を検索する場合
/\bin order (that|for (\S+ ){1,3}to)\b/
- for ... reason(s) という熟語の検索
→ 間に何も入らない or 3つまでの単語が入る可能性を考慮
ヒント: 単語は,おおよそ \S+ で表現可
/\bfor (\S+ ){0,3}reasons?\b/
- not as/so + ... + as という同等比較の否定文
ヒント: 否定辞は短縮形になっている場合もある
/\b(not|n't) (as|so) (\S+ ){1,3}as\b/
- side by side や from time to time のように,同じ単語が繰り返される表現
ヒント: \1 には前方の ( ) にマッチした文字列が自動的に入る
/\b(\S+) by \1\b/
/\bfrom (\S+) to \1\b/
大名 力 (2012) 『言語研究のための正規表現によるコーパス検索』ひつじ書房
滝沢直宏 (2017)『ことばの実際2 -- コーパスと英文法』研究社