You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式提取结构一致但内容不同的CNBC网页链接?

解决CNBC链接提取的正则问题

嘿,我来帮你完善这个正则表达式!你的基础部分已经找对方向了,咱们先优化一下现有写法,再补上后面的日期和标题部分就能搞定。

首先,先简化你现有的开头片段:原来的[h][t][t][p][s]://[w][w][w].[c][n][b][c].[c][o][m]/[2][0][1][5-8]其实可以写成更简洁易读的版本:

https://www\.cnbc\.com/201[5-8]/

这里的关键优化点:

  • 直接写https://就行,没必要拆成单个字符的字符组
  • 用\.转义点号,因为正则里的.默认匹配任意字符,我们需要精准匹配域名里的真实点
  • 201[5-8]和你原来的写法效果完全一致,但更简洁直观

接下来处理后面的动态部分:从你的例子能看出,年份后是两位数字的月份/两位数字的日期,再后面是由小写字母、数字、连字符组成的标题,最终以.html结尾。对应的正则片段是:

\d{2}/\d{2}/[\w-]+\.html

拆解一下这个片段的作用:

  • \d{2}:匹配恰好两位数字,对应月份和日期格式
  • [\w-]:匹配字母、数字、下划线和连字符(CNBC的标题里只会出现这些字符)
  • +:表示前面的字符组至少出现一次,确保标题不为空
  • \.html:匹配结尾的.html后缀,同样要转义点号避免歧义

把两部分组合起来,完整的正则就是:

https://www\.cnbc\.com/201[5-8]/\d{2}/\d{2}/[\w-]+\.html

测试你给的两个例子:

  • https://www.cnbc.com/2016/10/12/billionaire-richard-branson-learned-a-key-business-lesson-playing-tennis.html → 完全匹配
  • https://www.cnbc.com/2016/10/12/hedge-fund-bonus-makeover.html → 完全匹配

如果你的文本里链接前后可能有空格或其他无关字符,还可以给正则加上边界处理,比如忽略前后空格:

^\s*https://www\.cnbc\.com/201[5-8]/\d{2}/\d{2}/[\w-]+\.html\s*$

这样就能精准提取每一行的链接,不会被前后的空格干扰。

内容的提问来源于stack exchange,提问作者jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:05:35