【问题标题】:RegEx JS - how to get everything after : and defore / or end of a string [duplicate]RegEx JS-如何在字符串之后和之前/或结尾处获取所有内容[重复]
【发布时间】: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 你的建议看起来并不比正则表达式解决方案恕我直言。

标签: javascript node.js regex


【解决方案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 分钟内接受答复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
相关资源
最近更新 更多