После того, как вы разделили текст в строках, можно отфильтровать и сопоставить эти:
var lines = t.split('\n');
var asPattern = /^as \"(\w+)\"$/;
var bsPattern = /^bs \"(\w+)\"$/;
a = lines.filter(l => l.match(asPattern))
.map(l => l.replace(asPattern, "$1"));
b = lines.filter(l => l.match(bsPattern))
.map(l => l.replace(bsPattern, "$1"));
list.filter(predicate)
возвращает подсписок элементов, соответствующих предикату. Здесь мы используем функцию лямбда как предикат, который вернет true, только если строка соответствует шаблону.
>lines
["kjnggnfgnfkjg", "", "as "bob"", "", "bs "alice"", "", "fmdklfmdlkfk", "", "as "Marc"", "", "bs "Julien"", "", "dfdlf"]
>lines.filter(l => l.match(/^as \"(\w+)\"$/))
["as "bob"", "as "Marc""]
list.map(transformationFunction)
будет возвращать список результатов применения функции преобразования к каждому элементу исходного списка. Здесь мы повторно используем один и тот же шаблон и используем его первую группу в качестве замены.
>filteredLines
["as "bob"", "as "Marc""]
>filteredLines.map(l => l.replace(/^as \"(\w+)\"$/, "$1"))
["bob", "Marc"]
Делитесь кодом, которым вы пользовались? –
Я просто попытался с данными, которые получаю от ajax-запроса: Я использую data.split ('' \ n "), чтобы читать каждую строку ... , но я не могу сделать выбор с помощью регулярного выражение ... Функция get() { $ .ajax ({url: "../ local/exampleText", dataType: "Text", success: function (data) {b = data.split (" \ n "); console.log (data)}}); } – raoen
Хорошо, просто поделитесь своим кодом и сообщите нам, что вы делали повторно, поэтому мы можем вам помочь. –