JavaScript 字符串用多个定界符拆分,同时保留定界符

标签 javascript regex split

我想在 JavaScript 中使用多个分隔符拆分字符串,同时仍保留分隔符。 我尝试使用此 RegEx,但得到了我不感兴趣的匹配项。

"id:123 name:test pumpe desc:pumpe p123".split(/(?=(id:))|(?=(name:))|(?=(desc:))/gi)

我得到的输出:

[“id:123”, undefined, “name:”, undefined, “name:test pumpe”, undefined, undefined, “desc:”, “desc:pumpe p123”]

我想要的输出:

["id:123", "name:test pumpe", "desc:pumpe p123"]

我尝试使用正则表达式进行一些查询,但无法获得我想要的输出。

最佳答案

您实际想要分隔的分隔符是空格,具体来说,空格后跟 name:id:desc: .

按照这个逻辑,可以构造这个正则表达式:

/ (?=name:|id:|desc)/i

(注意首空格)

在这里试试:https://regex101.com/r/0RxEU9/1

console.log("id:123 name:test pumpe desc:pumpe p123".split(/ (?=name:|id:|desc)/i))

关于JavaScript 字符串用多个定界符拆分,同时保留定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55721914/

相关文章:

Javascript - 无法调用 null 的方法 'split'

javascript - ramda.js 中是否有相当于 mapValues 的函数(类似于 lodash)?

javascript - 更改默认的 firebase 存储桶?

php - 正则表达式匹配分号,但不在注释或引号中

java - 尝试按 },{ 分割时出现 PatternSyntaxException

hadoop - 为什么分割点在 Hadoop 总顺序分区器上乱序?

javascript - 延迟脚本是否在 DOMContentLoaded 事件之前执行?

javascript - 捕获 Mozilla 浏览器文本框中突出显示的文本

java - 带有捕获组的正则表达式,用于解析两个实数的范围

.net - 跳过前 n 个字符,剩下的用 RegEx