2013-10-25 3 views
0

Предположим, что у меня есть многострочный текст:регулярное выражение: retrive строки до первого вхождения строки

альфа

бета

гамма

дельта

, и я хочу получить только строки перед первым сть из elt с помощью JS exec функции, то есть:

альфа

бета

гамма

Я попытался с

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

но он возвращает:

альфа

бета

гамма

d

ответ

3

Вы, возможно, ищете /([\S\s]*)\n.*?elt/?

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

Что дает:

"альфа
бета
гамма"

1

Это приводит к "гамма":

var data = "alpha\nbeta\ngamma\ndelta"; 
var parts = data.match(/.*\n(.*)\n.*elta/m); 
console.log(parts[1]); 
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"] 
Смежные вопросы