javascript - 使用单个正则表达式从多个列表中捕获项目

标签 javascript regex list replace capture-group

我的输入如下所示:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. _4,7,13 Nullam suscipit orci sit amet feugiat facilisis. Curabitur eget 8 ligula malesuada, vehicula 3,6 quam sit amet, _5 tempor velit.

我需要使用单个正则表达式单独捕获逗号分隔列表中以 _ 开头的每个数字。

换句话说,我需要上面的粗体数字:

[4, 7, 13, 5]

我一次又一次地尝试完成这项工作,但没有成功。我想知道在放弃并使用多个表达式之前这是否可能。

我正在寻找 Javascript 的解决方案,但显然任何指针都会有帮助。

最佳答案

您可以在 Javascript 中使用此代码:

var input = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. 4,7,13 Nullam suscipit orci sit amet feugiat facilisis. Curabitur eget 8 ligula malesuada, vehicula 3,6 quam sit amet, 5 tempor velit.';

var matches = [];
input.replace(/_(\d+(?:,\d+)*)\b/g, function($0, $1) { 
      matches = matches.concat( $1.split(/,/g) ); return $1; } );

console.log(matches);
//=> ["4", "7", "13", "5"]

关于javascript - 使用单个正则表达式从多个列表中捕获项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26490380/

相关文章:

python - 将列表随机划分为两个互补的子列表

python - 当单元格内容是列表时从单元格中删除元素

javascript - React-native 从一个通用处理程序类调用 API

java正则表达式提取地址中的密码

使用 URL 检查正则表达式的 JavaScript URL 正则表达式

javascript - 如何在正则表达式中提取字符串

c# - 将列表格式化为字符串

javascript - 将文本从 <span> 复制到剪贴板

javascript - 如何在 Objection/Knex 中使用引用而不是文字字符串值查询 .where()

javascript - 更改 forEach 循环中的状态