您的位置:首页 > 其它

用正则获得指定标签的内容

2010-11-03 12:49 148 查看
有如下代码:
<channel>
<title>蓝色理想</title>
</channel>
<item>
<title>界面设计测试规范</title>
</item>
<item>
<title>《古典写实美女》漫画教程</title>
</item>
<item>
<title>安远――消失的光年</title>
</item>
<item>
<title>asp.net 2.0多语言网站解决方案</title>
</item>

要求匹配item里的title而不匹配channel里的title。
基本正则:
/<title>[\s\S]*?<\/title>/gi

首先是title标签,内容为任意字符若干个,然后是title结束标签。这个正则已经能匹配到所有的title标签。
首先,我简单地修改了一下原正则:
/<title>[^<>]*?<\/title>/gi,

因为title里面不应该再嵌有其它标签,这个正则同样是匹配所有标题的内容,最后再加上不去匹配channel中的title。整个正则如下:
/<title>[^<>]*?<\/title>(?!\s*<\/channel>)/gi

(?!\s*<\/channel>)表示要匹配字符串的后面不能跟着若干个空格和一个channel的结束标签。本文出自 “小鬼家家” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: