javascript - 如何保留分割定界符 RegExp 两侧的内容?

标签 javascript regex

我想用逗号分割一个包含多个姓名的字符串,格式为 Surname, First Name(s),Surname, First Name(s),并且两边都没有空格作为分隔符:

var input = 'White, Sterling M.,Devinney, Michael,Bernal, Tracy';

input.split(/[^ ]{1},[^ ]{1}/g); //Outputs: ["White, Sterling M", "evinney, Michae", "ernal, Tracy"]

如何保留/包含逗号两侧的字符?它不一定需要是一个分割,这只是我所得到的最接近的结果。

注意:如果您想知道,我是从另一个系统按原样获取此列表,因此我无法选择将给定的字符串更改为更容易更改的字符串解析。

如有任何帮助,我们将不胜感激!

最佳答案

您需要使用 .split() 执行此操作,而 JavaScript 不支持这些断言。但您可以匹配而不是拆分:

result = input.match(/(?: ,|, |[^,])+/g);

说明:

(?:    # Start of group that matches either...
 [ ],  # a space followed by a comma
|      # or
 ,[ ]  # a comma, followed by a space
|      # or
 [^,]  # any character except a comma
)+     # one or more times.

查看live on regex101.com .

关于javascript - 如何保留分割定界符 RegExp 两侧的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22010708/

相关文章:

javascript - 正则表达式允许负值最多保留 4 位小数

javascript - 如何通过 Javascript 自动添加双引号将字符串括起来?

java - 字符串上的正则表达式replaceAll

javascript - 有什么方法可以可靠地压缩短字符串?

javascript - 如何在 vanilla javascript 中将 promise 链接到 for 循环中

Javascript 日期字段实用程序

ios - 使用 swift 3 将字符串从开始位置剪切到结束位置

javascript - Mootools JSON(拉 child ,或 child )

javascript - redux-thunk 调度事件

regex - 最好的现代文本解析? AKA 何时使用 Lex 和 Yacc?