RegEx JS-如何在字符串之后和之前/或结尾处获取所有内容[重复]

Posted

技术标签:

【中文标题】RegEx JS-如何在字符串之后和之前/或结尾处获取所有内容[重复]【英文标题】:RegEx JS - how to get everything after : and defore / or end of a string [duplicate] 【发布时间】:2020-05-15 00:31:32 【问题描述】:

我有一个如下所示的字符串:

/part/:aaaa/:bbbb/some/:cccc

我需要从此字符串中获取:aaaabbbbcccc。我该怎么做?现在我可以得到aaaabbbb,因为它在:/之间。但是我怎样才能得到cccc

要获得 aaaa 和 bbbb,我使用 str.match(/:(.*)\//)

【问题讨论】:

在循环中使用 /:([^\/]+)/grx.exec(str) 来获取第 1 组的内容。或str.matchAll(/:([^\/]+)/g) 不需要正则表达式,使用s.split('/').filter(x => x[0]==":").map(z => z.substring(1)) @WiktorStribiżew 你的建议看起来并不比正则表达式解决方案恕我直言。 【参考方案1】:

我们可以尝试对模式:([^\/]+) 进行正则表达式迭代,这将匹配任何冒号项,仅捕获您想要的部分。

var re = /:([^\/]+)/g;
var input = '/part/:aaaa/:bbbb/some/:cccc';
var m;

do 
    m = re.exec(input);
    if (m) 
        console.log(m[1]);
    
 while (m);

【讨论】:

谢谢!有用!将在 9 分钟内接受答复。

以上是关于RegEx JS-如何在字符串之后和之前/或结尾处获取所有内容[重复]的主要内容,如果未能解决你的问题,请参考以下文章

js中RegEx中的匹配模式

正则表达式:要求6-20位,只能有大小写字母和数字,并且大小写字母和数字都要有。

JS Regex 匹配来自字符串的加拿大邮政编码

std::regex,匹配字符串的开始/结束

正则表达式:如何匹配以括号“)”结尾的单词

求一个匹配 以指定字符开头,指定字符结尾,中间内容任意的正则表达式