赞
踩
今天工作中需要用到正则来进行部分相同段落全量删除,突然忘记怎么写了,特地记录一下!
使用上述公式就能匹配任意字符,但是仅输入上述公式,我们只能匹配到一个字符,所以,还需要加上"*"通配符来匹配多个字符。比如我要匹配以BEGIN_NAMESPACE(abc)开头,以END_NAMESPACE(abc)结尾的所有段落,我们就可以这么写:
(BEGIN_NAMESPACE\(abc\))([\s\S]*)(END_NAMESPACE\(abc\))
但时,这样会发生有一个问题,他只会匹配全文中第一个BEGIN_NAMESPACE(abc)和最后一个END_NAMESPACE(abc),也就是中间包含的内容都会被忽略,最终只找到一个结果。这样很显然不是我们想要的结果,所以我们就需要使用"?"通配符来实现懒惰匹配,最终结果如下:
(BEGIN_NAMESPACE\(abc\))([\s\S]*?)(END_NAMESPACE\(abc\))
(注:本篇博客需要有一定的正则基础才能看懂哦)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。