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



假设我有多行文本:

阿尔法

试用版

伽马

三角洲

并且我只想使用 JS exec函数检索elt第一次出现之前的行,即:

阿尔法

试用版

伽马

我试过

/([Ss]*)[^n]*?elt.*/.exec(text)[1]

但它返回:

阿尔法

试用版

伽马

d

你也许在寻找/([Ss]*)n.*?elt/

var text = "alphanbetangammandelta";
console.log(/([Ss]*)n.*?elt/.exec(text)[1]);

这给了:

"阿尔法
试用版
伽玛"

这会导致"gamma":

var data = "alphanbetangammandelta";
var parts = data.match( /.*n(.*)n.*elta/m );
console.log(parts[1]);

这个解决方案呢?

var s = 'alphanbetangamma';
s.split(/n.*?amm/)[0].split('n'); // ["alpha", "beta"]
var s = 'alphanbetangammandelta';
s.split(/n.*?amm/)[0].split('n'); // ["alpha", "beta"]
var s = 'alphanbetangamandelta';
s.split(/n.*?amm/)[0].split('n'); // ["alpha", "beta", "gama", "delta"]

最新更新