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

时间:2014-10-21 15:23:16

标签: javascript regex list replace capture-group

我的输入如下:

  

Lorem ipsum dolor坐下来,精神上的精神。 _ 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的解决方案,但显然任何指针都会有所帮助。

2 个答案:

答案 0 :(得分:1)

您可以在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"]

答案 1 :(得分:0)

(_\d+(?:,\d+)*)

试试这个。抓住捕获。然后按,拆分。参见演示。

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