Прочитать текстовый файл путем поиска слова, а также получить строки найденного слова, а также посчитать строки найденного слова. Возможно? - PullRequest
0 голосов
/ 19 сентября 2018

Здесь Я отправил вопрос, но все еще застрял

Является ли мой текст:

Toto1 The line
Toto2 The line
Toto3 The line
Toto2 The line (second)
Toto3 The line (second)
...

Когда я ищу "Toto2", необходимо будет восстановить каждыйСтрока, которая содержит «Toto2», а также необходимо посчитать количество строк, которые содержат «Toto2», возможно ли это?

var regex = new RegExp('Toto2.*\n', 'g');

При этом мы должны были бы вернутьэто:

Toto2 The line
Toto2 The line (second)

и из другой переменной:

2

Спасибо

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете использовать Array.prototype.filter с простым регулярным выражением:

const text =
`Toto1 The line
Toto2 The line
Toto3 The line
Toto2 The line (second)
Toto3 The line (second)`;

const filteredLines = text.split('\n').filter(line => /Toto2/gi.test(line));

const count = filteredLines.length;

console.log(filteredLines);
console.log(count);

Получение строк с соответствующим номером строки (с помощью Array.prototype.reduce)

const text =
`Toto1 The line
Toto2 The line
Toto3 The line
Toto2 The line (second)
Toto3 The line (second)`;

const linesWithIndexes = text.split('\n').reduce((all, line, i) => {

    return all.concat(/Toto2/gi.test(line) ? {line, lineNumber: i + 1} : []);

}, []);

console.log(linesWithIndexes);
...