我有一個與字串中的確切子字串匹配的模式
function search(str,word){
var regex = new RegExp("(\\b|(?<=_))" word "(\\b|(?=_))","gi");
return str.match(regex);
}
var sample =`Hello this is
a _test.
This is third-test
This is fourth line`
var result = search(sample,"test");
console.log(result);
結果是[ 'test', 'test' ]
但我想要匹配發生的整行,即輸出應該是[ 'a _test', 'This is third-test' ]
uj5u.com熱心網友回復:
您可以匹配正則運算式模式(?<=\n).*test.*(?=\n|$):
var sample = `Hello this is
a _test.
This is third-test
This is fourth line`;
lines = sample.match(/(?<=\n).*test.*(?=\n|$)/g);
console.log(lines);
另一種方法,將輸入分成單獨的行,然后檢查每一行:
var sample = `Hello this is
a _test.
This is third-test
This is fourth line`;
var lines = sample.split(/\n/);
var output = [];
for (var i=0; i < lines.length; i) {
if (lines[i].includes("test")) {
output.push(lines[i]);
}
}
console.log(output);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/365439.html
標籤:javascript 正则表达式 细绳 比赛
