Regex Extract ID From URL

Regex Extract ID From URL

本文关键字:URL From ID Extract Regex      更新时间:2024-03-31

我有这样的url domain.com/news-343dds-this-is-test

我想提取新闻id 343dds,所以我尝试使用regex

这是我使用的正则表达式/news-(.+)-/

但结果是这样的343dds-this-is。我只想要343dds

(.+)是贪婪的,并且匹配其余的输入。将其更改为(.+?)以使其不贪婪。

Jeremy Hanlon的解决方案显然有效,但不是最推荐的解决方案。

你最好用([^-]+)

即使在像这个SO问题这样的简单情况下可能无关紧要,懒惰量词+?也有一个不便之处,即步骤的数量与搜索部分的大小成正比,因此它可能会广泛影响性能
这一点在这里解释得很清楚。

示例:

  • 对于给定的343dds密钥,(.+?)需要22个步骤
  • 对于像thisIsASignificativelyLongKey这样的较长密钥,(.+?)需要68个步骤
  • ([^-]+)只需要12个步骤就可以实现任意键