第八章:回溯引用,前后一致匹配
8.1 回溯引用匹配
例子:匹配文本中标题标签及内容
文本:
<h1>hello world</h1>hello world<h2>hello world</h2>
hello world
<h2>hello world</h2>
hello world
<h3>hello world</h1>
正则表达式:
<[hH][1-6]>.*</[hH][1-6]>
结果:
<h1>hello world</h1>hello world<h2>hello world</h2>
hello world
<h2>hello world</h2>
hello world
<h3>hello world</h1>
分析:
问题1:之前提到过的.*为贪婪型,需要使用懒惰型(.*?进行匹配)
问题2:文本中存在前后不一致的标题标签,这是不需要匹配的
正确的正则表达式:
<[hH]([1-6])>.*?</[hH]\1>
结果:
<h1>hello world</h1>hello world<h2>hello world</h2>
hello world
<h2>hello world</h2>
hello world
<h3>hello world</h1>
追溯引用指的是模式的后半部分引用在前半部分中定义的子表达式,你可以把回溯引用想象成变量。\1代表的是模式中第一个子表达式,\2代表第二个子表达式,以此类推...
posted on 2018-05-31 20:11 changlezhong 阅读(121) 评论(0) 编辑 收藏 举报