請提供一個解決方案,在C#.NET中編寫如下正則表達式: 我需要針對非字母(a到z; A到Z)的正則表達式,數字(0到9)。 意思是說,除了字母和其他數字(0到9)之外,獲得正則表達式的反向方式。用於非字母和非數字的正則表達式
請提出相同的解決方案。
請提供一個解決方案,在C#.NET中編寫如下正則表達式: 我需要針對非字母(a到z; A到Z)的正則表達式,數字(0到9)。 意思是說,除了字母和其他數字(0到9)之外,獲得正則表達式的反向方式。用於非字母和非數字的正則表達式
請提出相同的解決方案。
您可以使用這裏negated character class:
[^a-zA-Z0-9]
上述正則表達式匹配單個字符,不能是一個拉丁大寫或小寫字母或數字。
的^
在字符類([
和]
之間的部分)開始否定完整的類,以便它匹配的不是普通字符類的行爲在任何類不。
爲了讓它有效的,你可能想其中的一個:
零個或多個這樣的人物
[^a-zA-Z0-9]*
星號(*
)這裏意味着前面的部分可以重複零或更多次。
一個或多個這種字符
[^a-zA-Z0-9]+
加號(+
)這裏意味着前述部分可以重複一次或多次。
一個完整的(可能爲空)串,僅由這樣的字符
^[^a-zA-Z0-9]*$
這裏字符^
和$
具有含義anchors,分別匹配串的開始和結束。這可以確保整個字符串由不在該字符類中的字符組成,並且在其之前或之後不會有其他字符。
一個完整的(非空)字符串,僅由這些字符
^[^a-zA-Z0-9]+$
闡述了一下,這不會(和不能夠)確保你不會使用任何其他字符,可能來自其他腳本。字符串аеΒ
對上述正則表達式完全有效,因爲它使用希臘語和西里爾文的字母。此外還有其他缺陷。字符串á
將通過上面的正則表達式,而字符串́a
不會(因爲它從字母a和組合變音標記構造字母á)。
所以否定的字符類有時需要小心。
我也可以用數字從其它腳本,如果我想:١٢٣
:-)
可以使用字符類
[^\p{L&}\p{Nd}]
,如果你需要採取上面的東西照顧。
只是否定類:
[^A-Za-z0-9]
謝謝。 謝謝。 謝謝。 謝謝。 :) – sukumar 2009-11-18 09:44:19
哎呀...手指記憶。 :-(fixed :-) – beggs 2009-11-18 10:53:59