首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取urls的正则表达式

获取urls的正则表达式
EN

Stack Overflow用户
提问于 2011-10-06 21:57:21
回答 1查看 81关注 0票数 0

我有几个网页要解析,并且有如下链接

代码语言:javascript
复制
<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写了一个正则表达式:

代码语言:javascript
复制
/<a href="[^\/]*?([^<']+?)[^"]*?" class="S48">([^<>]+?)<\/a>/

捕获没有javascript内容的URL部分,以及标题部分。但是这个正则表达式对我来说只占标题部分,url只取"/“或"j”。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-06 22:23:45

此正则表达式:

代码语言:javascript
复制
!<a\s*href\s*=\s*".*?(/.*\.html).*"\s+class="S48">([^<>]+?)</a>!i

应用于您的输入将为组1生成以下结果:

代码语言:javascript
复制
/news/monde/0,,3204267-VU5WX0lEIDUy,00.html
/news/economie/0,,3204461-VU5WX0lEIDUy,00.html

对于组2,这些是:

代码语言:javascript
复制
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等的正则表达式。有更多更好的工具来完成这项工作。

同样短得多的版本:

代码语言:javascript
复制
/.*?(\/.*\.html).*?>([^<]+)/i

都会产生相同的结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7675332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档