正規表現

reライブラリのインポート

正規表現を用いるために reライブラリをインポートする。

>>> import re

語彙リストコーパスの利用

>>> wlist=[w for w in nltk.corpus.words.words('en') if w.islower()]

メタキャラクタの利用

文字列の中からパターンを見出す

文字列sの中からパターンpを見出す。

re.search(p,s)

末尾を指定して単語を探すには$を用います。下記の例は 「raction」で終わる単語のリストを表示している。

>>> [w for w in wlist if re.search('raction$',w)]
['abstraction', 'attraction', 'birefraction', 'congelifraction', 'contraction',
'counteraction', 'counterattraction', 'countertraction', 'detraction', 'diffract
ion', 'distraction', 'effraction', 'electroextraction', 'extraction', 'fraction'
, 'hyperaction', 'incontraction', 'infraction', 'interaction', 'introtraction',
'noncontraction', 'nonextraction', 'noninfraction', 'nonrefraction', 'nonretract
ion', 'nonsubtraction', 'nontraction', 'overaction', 'overcontraction', 'overpro
traction', 'protraction', 'reattraction', 'recontraction', 'refraction', 'retrac
tion', 'semicontraction', 'subfraction', 'substraction', 'subtraction', 'superat
traction', 'traction', 'underaction']
>>>

.は任意の1文字にマッチ。下記の例は 3文字目がjで6文字目がcで長さ8の単語のリストを表示している。

>>> [w for w in wlist if re.search('^..j..c..$',w)]
['rejoicer', 'unjuiced']

?は直前の文字が任意。あってもなくてもマッチ。

クリーネ閉包

+記号と*記号は、 クリーネ閉包もしくは閉包という。

^演算子

^演算子は、大かっこの先頭にきたときは否定の意味をあらわす。たとえば次の例は 母音以外の文字にマッチする正規表現である。

[^aiueoAIUEO]

生の文字列

r'abc'