2014-02-20 88 views
1

我試圖用一個正則表達式來測試我輸入的文本是否是一個縮寫,假定所有縮寫都是大寫字母,並且在每個字母后都有句號。正則表達式c#重複縮寫

我目前使用:

Regex.IsMatch(textBox4.Text, "([[A-Z].)+" 

,但它僅適用於第一個大寫字母和句號。

+0

點在正則表達式匹配任何字符。我認爲它應該逃脫:'([[A-Z] \。)+'不知道這是否是完全解決您的問題。 – LB2

回答

1

正則表達式中的點與任何字符匹配。如果你想匹配一個點,你必須用一個反斜槓\進行修飾。

所以,你要搜索的正則表達式應該是:

([A-Z]\.)+ 
+0

if(Regex.IsMatch(textBox4.Text,「([A-Z] \。)+」))我得到一個錯誤無法識別的轉義序列 – user2564113

+0

使用@「([A-Z] \。)+」。 @使它成爲一個原始字符串文字。普通字符串文字有特殊字符,例如\ n代表新行,\ t代表水平製表符。 –

+0

c#使用'\'作爲轉義字符。或者將其作爲'\\'轉義,或者用@前綴字符串讓c#忽略轉義序列。 –

2

以下是您的正則表達式代碼的樣子(您需要避開「。」)。

 Regex r = new Regex(@"([A-Z]\.)+"); 
     Match m = r.Match("A.B."); // this works 
     m = r.Match("AB"); // this one will fail 
     m = r.Match("X.Y.Z."); // this works