javascript - 正则表达式 - 如何匹配逗号之间的文本
问题描述
我有这样的文字:“某事,逗号之间,逗号之间的一些文本,以及逗号之间的更多文本,某事。” 我需要匹配两个逗号内的每一段文本。我找到了这个 regex /,([^,]*),/g
,但它返回了我:
, 逗号之间的一些文本,
,以及逗号之间的更多文本,
但我需要它返回:
逗号之间的一些文本
逗号之间
以及逗号之间的更多文本
需要你们的帮助。
解决方案
一种方法是拆分逗号(包括可选空格)。
然后删除数组的第一个和最后一个元素。
但是,只要结果数组中不需要那些开始和结束逗号,就可以正常工作。
示例片段:
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);
(虽然我真的不明白保留这些逗号的意义)
推荐阅读
- python - 带有 CleverHans 的随机森林黑盒
- python - 为什么 Python Pandas loc 不返回单个项目?
- c# - DbContext 不包含配置的定义 - EF Core
- php - PHP:尝试在多维数组中按值查找键,但不能正常工作
- ruby-on-rails - 如何推理枚举的级别
- git - 忽略整个目录树中所有扩展名为 .aux、.log 的文件
- excel - Excel VBA中的合并和总计
- c# - 使用 ASP.Net Core DI 的策略模式
- visual-studio - 使用 Microsoft.VisualStudio.TestTools.UnitTesting;
- angular6 - 通过点击事件上的选择器将数据从父级传递给子级