“正则表达式”,看这名字我就想起那个专门演傻瓜“肥猫”的郑则仕。
这两天频繁与“正则表达式”打交道,先是网站后台中的采集规则,然后是EditPlus中的回车替换,再就是今天在Dreamwerver中对特定文本的查找和替换。开始还以为就是简单如DOS命令中“*”和“?”的用法,没想到名堂还很多,比如换行要写成“\n”,还有一些保留字的避让法则。更深入的应用还需要借助联机手册、配合各种语言中的差别应用……,简单一点行不行?我只是要批量查找一些有特征的代码而已。起初,按照帮助中的解释,一切似乎还算顺利,但是碰到多行的代码就出了问题,无论我用什么标签,总是不能搜到超过一行的内容。比如:
<html>
<!– zhujie –>
我用“<–.*–>”可以搜索出第二行,“\n<–.*–>”可以把第一行的回车和第二行选中,但是在“\n”前无论加什么,这个表达式都会失效。起初还怀疑是不是“>”括号的问题,但是换了别的字符全都没用。不经意间看到了Dreamwerver关于正则表达式帮助的最后一行,尝试用“SHIFT+ENTER”替代“\n”……哈!竟然可以用这么直观省事的办法。看来这个规则是专门考虑到了网页制作实际而进行优化。
.*
<!– .* –>
表示第一行随便是什么,第二行的注释内容为随意字符。如果有多行可以为任意字符的代码,则每行必须要有一个“.*”占位置。而且碰到象“{}”这样的特殊字符,用“.*”讨巧通过也是个办法。
虽然这种摸索出来的方法很不严谨,但是能解决问题是最重要的,傻就傻点吧。