javascript - js 用正则表达式分割将保留不匹配的分隔符

标签 javascript regex split

我有以下代码:

console.log('xx,,blue,ffff'.split(/[^\,]+/));
// ["", ",,", ",", ""]

console.log('xx,,blue,ffff'.split('xx'));
//  ["", ",,blue,ffff"]

'xx,,blue,ffff'.match(/[^\,]+/)
// ["xx"]

我不明白为什么前两个示例的结果不同以及为什么 split 会保留不匹配的逗号。

编辑:添加我最初的想法:

/[^\,]+/ 将匹配 xx,然后 split 方法将拆分 'xx,, blue,ffff'xx 会得到 ["", ",,blue,ffff"],但结果是 ["", ",,blue,ffff"] 我哪里错了?

最佳答案

你的第一个例子是

console.log('xx,,blue,ffff'.split(/[^\,]+/));

它将给定字符串拆分为任何非逗号。在您的字符串中,有三个部分不是逗号 - xxblueffff。这些是将分割字符串的分隔符。所以你会得到"", ",,", ",", ""

在你的第二个例子中

console.log('xx,,blue,ffff'.split('xx'));

它根据xx分割字符串。所以有两个字符串,一个在xx之前,是empty,一个在xx之后,即,,blue,ffff

关于javascript - js 用正则表达式分割将保留不匹配的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280789/

相关文章:

javascript - 为什么 Vue 会破坏我自己的代码 dom 修改?

javascript - 开发实时更新网站的最佳方式

javascript - 减少数组的键值

python - Python 中的 Split vs Strip 以删除多余的空格

python - 将 DataFrame 字符串列拆分为 N 个拆分

javascript - 将 MongoDB 服务器数据同步到 IndexedDB 本地存储

arrays - 根据不同的对象属性添加新属性

java正则表达式字符串被 "not\"分割

r - 仅保留逗号后每个单词的第一个字母

java - 正则表达式拆分字符串