Previous: regexlen マッチ文字数 Up: mcal Next: regexpfx マッチ文字列のプレフィックス MCMD2
MCMD2 : mcal : regexm 全体マッチ

4.80 regexm 全体マッチ

書式1: regexm($str$,正規表現)

書式2: regexmw($str$,正規表現)

指定した正規表現が、文字列$str$全体にマッチすれば真を返す。 $str$もしくは正規表現にマルチバイト文字を含み、 Shift_JISなど文字の出現順によっては意に沿わない検索結果となる場合はregexmw関数を使うこと。

利用例

例1: 基本例

id=1,id=2共に、正規表現で示されたcに続くaaを含んでいるが、 id=2ではマッチする範囲が部分的(2文字目のcから最後まで)であるために偽となっている。

$ more dat1.csv
id,str
1,caabaa
2,acabaaa
3,
4,bbcbcc
$ mcal c='regexm($s{str},"c.*aa")' a=rsl i=dat1.csv o=rsl1.csv
#END# kgcal a=rsl c=regexm($s{str},"c.*aa") i=dat1.csv o=rsl1.csv
$ more rsl1.csv
id,str,rsl
1,caabaa,1
2,acabaaa,0
3,,0
4,bbcbcc,0

例2: 末尾一致

正規表現.*cで$str$項目の全体がカバーされるのはid=4の行のみである。

$ mcal c='regexm($s{str},".*c")' a=rsl i=dat1.csv o=rsl2.csv
#END# kgcal a=rsl c=regexm($s{str},".*c") i=dat1.csv o=rsl2.csv
$ more rsl2.csv
id,str,rsl
1,caabaa,0
2,acabaaa,0
3,,0
4,bbcbcc,1

例3: 空文字マッチ

正規表現^$でid=3の空文字にマッチする。

$ mcal c='regexm($s{str},"^$")' a=rsl i=dat1.csv o=rsl3.csv
#END# kgcal a=rsl c=regexm($s{str},"^$") i=dat1.csv o=rsl3.csv
$ more rsl3.csv
id,str,rsl
1,caabaa,0
2,acabaaa,0
3,,1
4,bbcbcc,0
Previous: regexlen マッチ文字数 Up: mcal Next: regexpfx マッチ文字列のプレフィックス MCMD2