8.70. regexm 全体マッチ¶
書式1: regexm(str,正規表現)
書式2: regexmw(str,正規表現)
指定した正規表現が、文字列 \(str\) 全体にマッチすれば真を返す。 \(str\) もしくは正規表現にマルチバイト文字を含み、 Shift_JISなど文字の出現順によっては意に沿わない検索結果となる場合はregexmw関数を使うこと。
利用例¶
importと入力データ(CSV)の準備
1import nysol.mcmd as nm 2 3with open('dat1.csv','w') as f: 4 f.write( 5'''id,str 61,caabaa 72,acabaaa 83, 94,bbcbcc 10''')
基本例
id=1,id=2
共に、正規表現で示された c
に続く aa
を含んでいるが、
id=2
ではマッチする範囲が部分的(2文字目の c
から最後まで)であるために偽となっている。
1nm.mcal(c='regexm($s{str},"c.*aa")', a='rsl', i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# id,str,rsl 4# 1,caabaa,1 5# 2,acabaaa,0 6# 3,,0 7# 4,bbcbcc,0
末尾一致
正規表現 .*c
で$str$項目の全体がカバーされるのは id=4
の行のみである。
1nm.mcal(c='regexm($s{str},".*c")', a='rsl', i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# id,str,rsl 4# 1,caabaa,0 5# 2,acabaaa,0 6# 3,,0 7# 4,bbcbcc,1
空文字マッチ
正規表現 ^$
で id=3
の空文字にマッチする。
1nm.mcal(c='regexm($s{str},"^$")', a='rsl', i="dat1.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# id,str,rsl 4# 1,caabaa,0 5# 2,acabaaa,0 6# 3,,1 7# 4,bbcbcc,0