javascript - 在 String.split() 中使用捕获组

标签 javascript regex

<分区>

$ node
> "ababaabab".split(/a{2}/)
[ 'abab', 'bab' ]
> "ababaabab".split(/(a){2}/)
[ 'abab', 'a', 'bab' ]
>

所以,这对我来说没有意义。有人可以解释一下吗?我不明白为什么会出现 'a'

注意:我正在尝试匹配双行结尾(可能在 Windows 文件上),所以我在 /(\r?\n){2}/ 上拆分。但是,我的数组中出现了无关的 '\015\n' 条目(注意 \015 ==\r)。

为什么会出现这些?

注意:也会影响浏览器中的 JS 引擎,因此这是特定于 JS 而不是节点。

最佳答案

在您的第二个结果中,出现了 a,因为您已将它包装在捕获组 ()(括号)中。

如果您不想包含它但您仍然需要条件组,请使用非捕获组:(?:a)。问号-冒号可以在任何捕获组内使用,它会从捕获结果列表中被忽略。

这是一个简单的例子:http://regex101.com/r/yM1vM4

关于javascript - 在 String.split() 中使用捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419530/

相关文章:

javascript - 修改第三方JS发送的数据

regex - elasticsearch - 使用涉及空间的正则表达式搜索

javascript - 如何从异步 POST 请求返回字符串?

javascript - Bootstrap Multiselect - 没有单选按钮的单选

regex - 仅匹配以字符开头的

javascript - 正则表达式用@here 或空白转义 &lt;!here|@here> 的所有匹配项

python - 如何正确解析右括号

javascript - 正则表达式检测键是否不在引号内

javascript - Chrome 不透明度过渡 z-index 问题

Javascript使用RegEXP删除特殊字符之间(但不包括)的字符