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

regex: retrive the lines before the first occurrence of a string

本文关键字:检索 字符串 第一次 正则表达式      更新时间:2023-09-26

假设我有多行文本:

阿尔法

试用版

伽马

三角洲

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

阿尔法

试用版

伽马

我试过

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

但它返回:

阿尔法

试用版

伽马

d

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

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

这给了:

"阿尔法
试用版
伽玛"

这会导致"gamma":

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

这个解决方案呢?

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"]