正则表达式备忘

2016-06-12  本文已影响17人  千里山南

正则表达式备忘

捕获

(exp) 引用\1 \2 ...
(?<name>exp) 引用\k<name>
(?:exp)不捕获文本 也不参加分组

零宽断言

其作用是断言左右文本的模式,并不包括在最后匹配的结果中
(?=exp) 匹配exp前面的问题
(?<=exp) 匹配exp后面的问题
(?!exp) 匹配后面不是exp
(?<!exp) 匹配前面不是exp

eg (?<=<(\w+)>).*(?=</\1>)匹配不包含属性的简单HTML标签内里的内容,注意这里只匹配标签内的内容,而不匹配标签本身
这就是零宽断言的效果

注释

(?#comment)这种类型的分组不对正则表达式的处理产生任何影响

贪婪模式与非贪婪模式

大部分的正则引擎是默认贪婪模式的,非贪婪模式需要在次数匹配后面添加'?'
如*? +? ?? {m,n}? {n,}?

上一篇下一篇

猜你喜欢

热点阅读