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

Capturing items from multiple lists using a single regex

本文关键字:列表 项目 单个 正则表达式      更新时间:2023-09-26

我的输入如下:

Lorem ipsum悲哀坐amet,consectetur adipiscing elit_4713Nullam suscipit orci sat amet feugiat facilisis。Curabitur eget 8 ligula malesuada,vehicula 3,6 quam sit amet,_5tempor 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"]
(_'d+(?:,'d+)*)

试试这个。抓住捕获的。然后由,分割。请参阅演示。

http://regex101.com/r/rQ6mK9/23