gpt4 book ai didi

javascript - 正则表达式 : Extract number that's wrapped in

转载 作者:行者123 更新时间:2023-11-28 01:30:04 25 4
gpt4 key购买 nike

这是我的问题。我需要从以下任意一项中提取 12345:

var dURL1='http://www.domain.com/?some_id=12345';
var dURL2='http://www.domain.com/sub/anotherSub/12345';
var dURL3='http://www.domain.com/sub/anotherSub/12345-some-random-text';
var dURL4='sub/anotherSub/12345';
var dURL5='sub/anotherSub/12345-some-other-random-text';
var dURL6='/sub/anotherSub/12345';
var dURL7='/sub/anotherSub/12345-some-other-random-text';

我有:

/(\S+)?(sub\/anotherSub\/|\?some_id=)\d+(-\S+)?/g

但是,如您所知,如果我将上面的内容粘贴到替换中,它将替换整个字符串、数字等。如何让它替换除数字之外的所有内容?

编辑:问题是,我会有一些不遵循上述格式的链接。一些链接可能是:

var dURL8='http://www.google.com/';

我正在循环浏览网页上找到的所有链接,并将符合上述条件的所有数字添加到数组中,以便稍后执行。 :)。

最佳答案

你可以试试这个:

var result = yourstr.replace(/^.*?(?:(?:\bsub\/anotherSub\/|\?some_id=)(\d+))?[^\d\/]*$/, '$1');

图案详细信息:

^                         # anchor for the start of the string
.*? # all characters until the capturing group (lazy quantifier)
(?: # an optional non capturing group
(?: # a non capturing group with the 2 possibilities
\bsub\/anotherSub\/
| # OR
\?some_id=
) # close the second non capturing group
(\d+) # capturing group 1 with digits:
)? # close the first non capturing group and make it optional
[^\d\/]* # all that is not a digit or a slash
$

请注意,如果您想使用 http://domain.com 获取空字符串,可选的非捕获组非常重要

关于javascript - 正则表达式 : Extract number that's wrapped in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22232633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com