来自URL的正则表达式提取ID

时间:2016-04-09 05:22:04

标签: javascript regex

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

我想提取新闻ID 343dds, 所以我试着用正则表达式

这是我用/news-(.+)-/

的正则表达式

但结果就像这个343dds-this-is。我只想获得343dds

2 个答案:

答案 0 :(得分:6)

(.+)正在贪婪并与输入的其余部分相匹配。将其更改为(.+?)以使其不贪婪。

答案 1 :(得分:1)

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

您最好使用([^-]+)

即使在诸如此SO问题的简单情况下它可能无关紧要,但是懒惰量词+?具有步骤数与搜索部分的大小成比例的不便,因此它可能广泛影响表现。
这清楚地解释了here

示例: