2014-09-18 28 views
1

使用.net的Regex.Match()來判斷一個字符串是否只包含大寫字符時有什麼方法嗎?Regex.Match大寫

我在一個應用程序(所以我沒有訪問代碼),它允許我看看一個字段是否匹配某個正則表達式模式(在場景後面使用Regex.Match())。所以我想用這個來確定字符串是否只有大寫字母。

謝謝!

+0

爲什麼不使用/^[A-Z] + $/ – Grice 2014-09-18 19:01:54

+0

@JGrice這隻適用於ASCII。對於支持它的正則表達式引擎,「\ p {Upper}」可用於跨越多個字母的1483個大寫字母。你的建議只錯過了1457個。 ;)這引出了一個問題:@Richard,你需要支持Unicode還是僅支持ASCII? – DavidO 2014-09-18 19:07:24

+0

@DavidO是否支持.net Regex.match()支持\ p {Upper}?在我的快速搜索中找不到任何文檔。 – Grice 2014-09-18 19:11:27

回答

4

將此作爲匹配字符串僅用於大寫字母,不能包含空格等特殊字符。

^[A-Z]*$ 

,對於特殊字符(只包含的字符不是小寫):

^[^a-z]*$ 
+0

令人震驚......剛剛從提供程序中發現RegexOptions.IgnoreCase已設置,因此爲什麼沒有任何工作。對不起大家。但對於未來的其他人,我會將傑弗裏的答案設定爲正確答案。 – Richard 2014-09-18 19:14:52

2

您可以使用下面的正則表達式。這將匹配具有小寫變體的任何大寫字母。

^\p{Lu}+$ 

或者您可以只匹配大寫字母字符。

^[A-Z]+$