我敢肯定,這已被問過,但我似乎無法找到它(或不知道正確的寫法搜索)正則表達式匹配所有的一套,除了某幾個
基本上我想要一個正則表達式匹配除連字符以外的所有非字母數字。所以基本上匹配\ W +除了排除' - '我不知道如何從預製集合中排除特定的。
我敢肯定,這已被問過,但我似乎無法找到它(或不知道正確的寫法搜索)正則表達式匹配所有的一套,除了某幾個
基本上我想要一個正則表達式匹配除連字符以外的所有非字母數字。所以基本上匹配\ W +除了排除' - '我不知道如何從預製集合中排除特定的。
\W
是的簡寫。所以:
[^\w-]+
一點背景:
[…]
定義了一組[^…]
否定一套\v
(smallcase)組由\V
(大寫)否定其中V是定義一個集合的任何字母。[[:alpha:]]
和[[:alnum:]]
[^\w-]+
會做到這一點。匹配連字符以外的任何不在\w
集合中的字符。
您可以使用:
[^a-zA-Z0-9_-]
或
[^\w-]
匹配單個非連字符,非-alphanumeric。要匹配一個或多個前綴爲+
下劃線丟失(以及大量的重音字符,如果他的正則表達式將ä,ß或à等字符視爲'\ w'的一部分)... – 2010-03-28 05:38:11
在Java7或更高版本中,您需要預先配置(?U)
以匹配所有特定於語言環境的字符。例如
(?U)[^\w-]
在Java字符串(你需要逃避\
字符與另一個):
(?U)[^\\w-]
謝謝,知道這將會是容易的 – Davy8 2010-03-28 05:43:28