perl 正则表达式问题
问题描述:
perl 正则表达式问题
我想匹配括号对(),然后检查()里的内容,如果是金木水火土这五个字中的一个,我就保留括号,否则我就要去除括号.于是最简单的方法就是找出这5个字的补集,这5个字我用utf8编码表示的,例如金用E98791表示.可是这个补集我弄不出来.
答
s/\(([^金木水火土]+?)\)/$1/gperl -lpe 's/\(([^金木水火土]+?)\)/$1/g' test.txt
注:这个只是简单实现,没有考虑括号内嵌的情况