正则表达式 - 如何匹配逗号之间的文本

时间:2018-06-06 18:32:35

标签: javascript regex typescript

我有一个文字:" Something,逗号之间的一些文字,逗号之间的文字,逗号之间的更多文字,某些内容。"我需要匹配内部两个逗号的每一段文字。我找到了这个正则表达式/,([^,]*),/g,但它正在回复我:

,逗号之间的一些文字,

,逗号之间有更多文字,

但我需要它返回:

逗号之间的一些文字

逗号之间的

逗号之间的更多文字

需要你的帮助。

2 个答案:

答案 0 :(得分:1)

一种方法是将逗号分开(包括可选的空格) 然后删除第一个&数组的最后一个元素 但是,只要那些起点和结果数组中不需要结束逗号。

示例摘录

var str = "Something, some text between commas, between comma, and more text between commas, something something";

var arr = str.split(/\s*,\s*/).slice(1,-1);

console.log(arr);

但是如果你确实需要在结果中保留开始和结束逗号?
然后与前瞻相匹配就可以了。

示例摘录

var str = "Something, some text between commas, between comma, and more text between commas, something something";

var re = /,[^,]*(?=,)/g;
var arr = [];
var match;
while (match = re.exec(str)) {
   arr.push(match[0]+',');
}

console.log(arr);

(虽然我真的没有看到保留这些逗号的重要性)

答案 1 :(得分:0)

将此正则表达式与正向前瞻一起使用,以确保文本位于逗号之间而不消耗第二个逗号。

/,([^,]*)(?=,)/g

请参阅此处查看工作示例:https://regexr.com/3qkui