正则表达式提取URL中的斜杠

3
我需要使用正则表达式提取出该字符串中间的数字:
```regex (?<=\d)\d+(?=\d) ```
/166012342170/934760332134/794294808150/2436280815794/

需要的输出:934760332134

我尝试使用这个:(?:.+?/){2}

我对正则表达式很陌生 :(


你需要的输出在输入字符串中不存在。 - Wiktor Stribiżew
1
请查看 https://regex101.com/r/z2Pztw/1 上的 ^/[^/]+/\K[^/]+ - Wiktor Stribiżew
或者使用一个捕获组 ^/\d+/(\d+) https://regex101.com/r/dzMrXh/1 - The fourth bird
我在程序中使用 JavaScript 语言,但它无法运行。有什么快速的建议可以告诉我需要改变什么。 https://www.regextester.com/97910 - Javi Castegnaro
1
如果这实际上是一个URL,您可以使用这个答案,从URL中提取pathname,然后在/字符上分割。没有真正需要复杂的正则表达式。 - jrook
显示剩余2条评论
2个回答

1
在JS中,你可以使用/字符简单地分割字符串:

console.log('/166012342170/934760332134/794294808150/2436280815794/'.split('/')[2])

如果您打算使用正则表达式,可以使用

var s = '/166012342170/934760332134/794294808150/2436280815794/';
var m = s.match(/^\/[^\/]+\/([^\/]+)/); 
if (m) {
  console.log(m[1]);
}

详情

  • ^ - 字符串的开头
  • \/ - 斜杠字符 /
  • [^\/]+ - 除了斜杠 / 之外的1个或多个字符
  • \/ - 斜杠字符 /
  • ([^\/]+) - 捕获组1:除了斜杠 / 之外的1个或多个字符

0

要获取第二个数字,正则表达式应该是

(?:\/([0-9]+)){2}

从下面的行中得到934760332134

/166012342170/934760332134/794294808150/2436280815794

这里尝试一下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接