我正在嘗試匹配前面或后面有空格或兩者都有的單詞。
var sample = " test-abc -test# @test _test hello-test@ test test "
就像在上面的例子中,第一個“測驗”將算作它前面有一個空格,下一個“測驗”將算作它沒有空格,第三個“測驗”將算作它后面有一個空格,類似地第四個同樣,第五個不會計算,因為它前后沒有空格,最后兩個會因為它們前后有空格。
function countOccurences(str,word){
var regex = new RegExp("(\\b|(?<=_))" word "(\\b|(?<=_))","gi");
console.log((str.match(regex)|| []).length);
}
我撰寫的函式計算確切的單詞但不考慮空格所以我得到的輸出是 7 但我想要得到的是 5。
uj5u.com熱心網友回復:
您可以嘗試使用match()這里:
var sample = " test-abc -test# @test _test hello-test@ test test ";
var matches = sample.match(/(?<=\s)test|test(?=\s)/g, sample);
console.log("There were " matches.length " matches of test with whitespace on one side");
此處使用的正則運算式模式表示匹配:
(?<=\s)test test preceded by whitespace
| OR
test(?=\s) test followed by whitespace
請注意,這里的 5 場比賽是:
test-abc
@test
_test
test
test
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/366476.html
標籤:javascript 正则表达式 细绳 比赛
上一篇:無法使用SHAP顯示條形圖
