正则表达式零宽断言使用
2012-08-22 10:41
323 查看
<h1><a href="http://www.csdn.net/article/2012-08-21/2808912" target="_blank" >【历史上的今天】1973 年谷歌联合创始人Sergey Brin诞生</a></h1> <h4>发表于<span class="ago">20小时前</span>|<span class="view_time">671次阅读</span>|<span class="num_recom">0条评论</span></h4> <dl> <dt> <a href="http://www.csdn.net/article/2012-08-21/2808912" target="_blank"><img src="http://articles.csdn.net/uploads/allimg/120821/28-120R11232290-L.jpg" alt="" /></a> <dd>Sergey Brin是一位苏联出生的美国籍犹太裔电脑工程师兼企业家,为谷歌创始人之一。24岁与Larry Page在车库里创建了Google,创造了互联网时代的神话。</dd> </dl>
我想要把
<h1><a href="http://www.csdn.net/article/2012-08-21/2808912" target="_blank" >【历史上的今天】1973 年谷歌联合创始人Sergey Brin诞生</a></h1>
这个标签中的文字匹配出来:
于是我写了一句:
(?<=<a\\s+href=\"[\\s\\S]*?>)([\\s\\S]*?)(?=(</a>))
结果报错了:Look-behind group does not have an obvious maximum length near index 23
在网上查了半天,也没有找到好的解决办法。并且我还不知道这个是怎么引起的。
后面我知道了,这个错误是因为零宽断言的表达式太长引起的。
于是我将它改成了:
(?<=<a\\shref=\"[\\s\\S]{0,100}?>)([\\s\\S]*?)(?=(</a>))
结果正确。
在这里,一定要注意,零宽断言中exp一定要有可以达到的长度。
相关文章推荐
- 正则表达式匹配不包含特殊子串的字符串(零宽断言的使用)
- 正则表达式零宽断言详解
- 正则表达式(二) - 零宽断言与懒惰匹配以及平衡组
- Python正则表达式中的 零宽断言 …
- php学习第四章:正则表达式(四)匹配规则:分组、环视(零宽断言和负向零宽断言)
- 教你怎么理解正则表达式之零宽断言(环视)
- 正则表达式零宽断言详解(?=,?<=,?!,?<!)
- 教你怎么理解正则表达式之零宽断言(环视)
- 正则表达式之零宽断言
- JavaScript中正则表达式(零宽度正回顾后发断言)
- C#正则表达式(3):注释,分组,向后引用,零宽断言,贪婪
- 正则表达式–零宽断言-赵兴壮
- 正则表达式-零宽断言
- 正则表达式学习记录-零宽断言
- 正则表达式-零宽断言实践
- 正则表达式零宽断言详解
- C#正则表达式反向零宽断言(用于排除特定的值)
- 正则表达式学习记录-负向零宽断言
- 正则表达式零宽断言在php中的问题