JS正则表达式非捕获组如何工作?

时间:2016-05-24 11:17:27

标签: javascript regex

这不是关于如何实现示例中解释的内容,有很多简单的方法可以做到这一点。问题是为什么这个例子的行为不符合预期?

1。如果我有以下字符串

"#foo#bar"

2。我试图在JavaScript中使用以下正则表达式[foo, bar]

"#foo#bar".match(/(?:#)([a-zA-Z]*)/gi)

第3。它返回

Array [ "#foo", "#bar" ]

忽略非捕获组(?:#)

这是我在这里https://regex101.com/r/zI0wH9/1

的第一次预期

那为什么呢? JS正则表达式的表现方式有所不同吗?

1 个答案:

答案 0 :(得分:-1)

只需尝试

"#foo#bar".match(/[a-zA-Z]+/gi); //outputs ["foo", "bar"]