我有几个网页要解析,并且有如下链接
<a href="/news/monde/0,,3204267-VU5WX0lEIDUy,00.html" class="S48">Jean-Paul II opéré "avec succès" (24/02/2005)</a>
<a href="javascript:VerifCookie('4','/news/economie/0,,3204461-VU5WX0lEIDUy,00.html',700,600,52);" class="S48">Que peut-il se passer si le pape est incapable d'assurer sa tâche ? (24/02/2005)</a>正如你所看到的,第二个有一个领先的JavaScript的东西,我想摆脱它,并与第一个类型兼容。所以我用perl写了一个正则表达式:
/<a href="[^\/]*?([^<']+?)[^"]*?" class="S48">([^<>]+?)<\/a>/捕获没有javascript内容的URL部分,以及标题部分。但是这个正则表达式对我来说只占标题部分,url只取"/“或"j”。
有什么建议吗?
发布于 2011-10-06 22:23:45
此正则表达式:
!<a\s*href\s*=\s*".*?(/.*\.html).*"\s+class="S48">([^<>]+?)</a>!i应用于您的输入将为组1生成以下结果:
/news/monde/0,,3204267-VU5WX0lEIDUy,00.html
/news/economie/0,,3204461-VU5WX0lEIDUy,00.html对于组2,这些是:
Jean-Paul II opéré "avec succès" (24/02/2005)
Que peut-il se passer si le pape est incapable d'assurer sa tâche ? (24/02/2005)当然,这适用于您的特定输入。我强烈建议避免使用.xml,.html,.xsl等的正则表达式。有更多更好的工具来完成这项工作。
同样短得多的版本:
/.*?(\/.*\.html).*?>([^<]+)/i都会产生相同的结果。
https://stackoverflow.com/questions/7675332
复制相似问题