任務本身看起來像這樣: 給定字串'ave a#b a2b a$b a4b a5b ab acb'。撰寫一個正則運算式來查找以下型別的字串:字母“a”和“b”位于邊緣,它們之間既沒有字母也沒有數字。
我真的很難理解它。但我能夠寫出類似的東西:
'ave a#b a2b a$b a4b a5b a-b acb'.replace(/a\Wb/g, ""),
但它的作業原理是僅替換我需要輸出和離開的值'ave a2b a4b a5b acb',但我只需要洗掉除'a#b a$b a-b'. 你能幫我解決這個問題嗎?
uj5u.com熱心網友回復:
您可以匹配所有匹配的\ba[^\sa-zA-Z0-9]b\b模式,其a前面沒有任何字符字符,然后是除空格、字母和數字以外的任何字符,然后是b后面沒有字符字符的字符,然后用空格連接輸出:
console.log(
'ave a#b a2b a$b a4b a5b a-b acb'.match(/\ba[^\sa-zA-Z0-9]b\b/g).join(" ")
)
請參閱正則運算式演示。
注意:如果預期的匹配出現在空格之間或字串的開頭/結尾,您可能需要用空格邊界替換單詞邊界,/(?<!\S)a[^\sa-zA-Z0-9]b(?!\S)/g.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/343813.html
標籤:javascript 正则表达式
