У меня есть несколько строк строки, теперь я хочу напечатать те строки, которые содержат определенную подстроку - PullRequest
0 голосов
/ 21 сентября 2018
Here i want to print line which contains following strings: 
Object.< anonymous > 

Вот несколько строк: теперь найдите те строки, которые содержат подстроку Object.

Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'yourusername'@'localhost' (using password: YES)
at Socket.< anonymous > (/home/abc/Desktop/AJ/CustomLogger/node_modules/mysql/lib/Connection.js:91:28)
at Object.< anonymous > (/home/abc/Desktop/AJ/CustomLogger/conn.js:10:5)
at Module._compile (internal/modules/cjs/loader.js:686:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)

Вывод должен быть: at Object. (/home/abc/Desktop/AJ/CustomLogger/conn.js:10:5)

1 Ответ

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

Либо вы можете разбить вашу строку и сначала получить все строки, а затем проверить на Object.< anonymous > (с или без regex), чтобы отфильтровать их.

let str = `Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'yourusername'@'localhost' (using password: YES)
at Socket.< anonymous > (/home/abc/Desktop/AJ/CustomLogger/node_modules/mysql/lib/Connection.js:91:28)
at Object.< anonymous > (/home/abc/Desktop/AJ/CustomLogger/conn.js:10:5)
at Module._compile (internal/modules/cjs/loader.js:686:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)`,

res = str.split("\n").filter(line=>line.indexOf("Object.< anonymous >")>-1);

console.log(res);

Или вы можете сопоставить regex с многострочным флагом (m)

let str = `Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'yourusername'@'localhost' (using password: YES)
at Socket.< anonymous > (/home/abc/Desktop/AJ/CustomLogger/node_modules/mysql/lib/Connection.js:91:28)
at Object.< anonymous > (/home/abc/Desktop/AJ/CustomLogger/conn.js:10:5)
at Module._compile (internal/modules/cjs/loader.js:686:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)`,

res = str.match(/^(.*Object\.< anonymous >.*)$/mg);

console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...