首页 > 解决方案 > 正则表达式 - 如何匹配逗号之间的文本

问题描述

我有这样的文字:“某事,逗号之间,逗号之间的一些文本,以及逗号之间的更多文本,某事。” 我需要匹配两个逗号内的每一段文本。我找到了这个 regex /,([^,]*),/g,但它返回了我:

, 逗号之间的一些文本,

,以及逗号之间的更多文本,

但我需要它返回:

逗号之间的一些文本

逗号之间

以及逗号之间的更多文本

需要你们的帮助。

标签: javascriptregextypescript

解决方案


一种方法是拆分逗号(包括可选空格)。
然后删除数组的第一个和最后一个元素。
但是,只要结果数组中不需要那些开始和结束逗号,就可以正常工作。

示例片段:

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);

(虽然我真的不明白保留这些逗号的意义)


推荐阅读