正则表达式:在第一次出现字符串之前检索行

时间:2013-10-25 12:04:02

标签: javascript regex

假设我有多行文字:

  

alpha

     

测试

     

伽马

     

增量

我想使用JS elt函数在第一次出现exec之前仅检索行,即:

  

alpha

     

beta

     

伽马

我试过

/([\S\s]*)[^\n]*?elt.*/.exec(text)[1]

但它返回:

  

alpha

     

测试

     

伽马

     

d

3 个答案:

答案 0 :(得分:3)

您是否正在寻找/([\S\s]*)\n.*?elt/

var text = "alpha\nbeta\ngamma\ndelta";
console.log(/([\S\s]*)\n.*?elt/.exec(text)[1]);

给出了:

  

“阿尔法
  公测
  伽马“

答案 1 :(得分:1)

这导致“gamma”:

var data = "alpha\nbeta\ngamma\ndelta";
var parts = data.match( /.*\n(.*)\n.*elta/m );
console.log(parts[1]);

答案 2 :(得分:0)

这个解决方案怎么样?

var s = 'alpha\nbeta\ngamma';
s.split(/\n.*?amm/)[0].split('\n'); // ["alpha", "beta"]

var s = 'alpha\nbeta\ngamma\ndelta';
s.split(/\n.*?amm/)[0].split('\n'); // ["alpha", "beta"]

var s = 'alpha\nbeta\ngama\ndelta';
s.split(/\n.*?amm/)[0].split('\n'); // ["alpha", "beta", "gama", "delta"]