2013-03-24 110 views
1

我有此表達正則表達式字邊界( B)匹配和空白

\b[A-Za-z]+\b 

如果我給 「ABC @德MNOP」 時,它匹配 「ABC」, 「日」 和 「MNOP」。但我希望它只匹配「mnop」。我怎樣才能做到這一點。

+2

您可以更具體地說明您想要匹配的內容,也許可以使用空格和標點符號作爲分隔符而不是單詞邊界。 – 2013-03-24 17:23:27

+1

你需要指定的語言/工具..正則表達式實施不同語言 – Anirudha 2013-03-24 17:34:58

回答

7

\b是一個字邊界。

所以,\b類似於[^a-zA-Z0-9_]\b檢查的任何東西,除了word

您可以使用它代替正則表達式

(?<=\s|^)[a-zA-Z]+(?=\s|$) 
-------- --------- ------ 
    |   |  |->match only if the pattern is followed by a space(\s) or end of string/line($) 
    |   |->pattern 
    |->match only if the pattern is preceded by space(\s) or start of string\line(^) 
+0

+1的環顧。 – 2013-03-24 17:25:22

5

\b意味着(?:(?<!\w)(?=\w)|(?<=\w)(?!\w))。這將匹配字母和@之間的位置。

你可以寫:

(?<!\S)[A-Za-z]+(?!\S) 

(?!\S)相當於(?=\s|$)