/\b(okay|ok|o\.k\.)\b/g
比賽的一切,但o.k.
正則表達式:逃逸點是沒有幫助
/\b(okay|ok|o\.k\..)\b/g
確實匹配O.K.但如果不是。在字符串的末尾。我錯過了什麼?
/\b(okay|ok|o\.k\.)\b/g
比賽的一切,但o.k.
正則表達式:逃逸點是沒有幫助
/\b(okay|ok|o\.k\..)\b/g
確實匹配O.K.但如果不是。在字符串的末尾。我錯過了什麼?
的\b
是一個字邊界,該邊界不匹配以下.
,如Signus指出。你想是這樣的:
/\b(okay\b|ok\b|o\.k\.)/g
說明,並鏈接到debuggex演示:
例子:
"okay dude ok o.k. yep".match(/\b(okay\b|ok\b|o\.k\.)/g)
// returns ["okay", "ok", "o.k."]
注意,\b
仍然存在,括號內,okay
和ok
後。因此,它不匹配,例如,okayed
。例如:
"he okayed the idea".match(/\b(okay\b|ok\b|o\.k\.)/g)
// returns null
我需要\ b在最後以避免部分匹配。例如,如果我最後省略了\ b,在字符串「他好了這個想法」中,okayed的好的部分將匹配,我不想要。 – jsaunders
它在那裏;我只是把它放在括號裏。它不會匹配您評論中的字符串。 –
正如正確地觀察別人,這是\b
在引起你的問題的結束。 \b
只匹配一個分詞 - 也就是說,一邊有\w
字符,另一邊有\W
(某些GREP方言中的非單詞字符)。由於已經是一個不是一個單詞在一側,這將仍然匹配您o.k.
..但只有在後面緊跟一個單詞字符。
一種解決方案是在括號中其他「常規」裏面的話結束移動\b
(一個在一開始是好的):
/\b(okay\b|ok\b|o\.k\.)/g
我想你要找的是一個非獲取匹配: /(?i)(okay|ok|o\.k\.)(?:\b|\s|$)/g
使用單詞邊界是確定的。但是,這是不夠的。
既然你想在什麼樣子的日常使用OK這個詞相匹配,我已經擴大了它一下你讓它不區分大小寫,仍然允許你當它與標點符號結束匹配。
你正在使用什麼樣的正則表達式?什麼語言? –
\ b我會假設與\不兼容。 – Dalorzo
請發佈主題字符串和所需匹配的示例。 –