2012-08-08 49 views
0

我有一個字符串,需要是以下格式:XX999900XX必須是隻有字符無小數,後跟6位數。需要檢查一個字符串的格式在C#

所以我想通過以下方式使用正則表達式的:

string sPattern = @"^\\[A-z]{2}\\d{6}$"; 
indexNumber = "ab9999.00"; 
if (Regex.IsMatch(indexNumber, sPattern) 
{ 
    // do whatever 
} 

它失敗。 有人可以告訴我什麼是錯的?

+1

你能解釋什麼是有效的輸入和無效輸入?你的描述中有'XX999900'',但代碼中有''ab9999.00''(注意小數點)。正則表達式每個都會有所不同。 – Oded 2012-08-08 18:20:03

+0

檢查Reg-ex在這裏,希望它會幫助你 http://www.regular-expressions.info/examples.html – KKP 2012-08-08 18:28:40

回答

7

我不相信[A-z]是一個有效的字符類。當使用@時,你當然不需要\\

試試這個:

@"^[a-zA-Z]{2}\d{6}$" 

如果您需要的格式有4個數字後面是.然後兩個數字,試試這個:

@"^[a-zA-Z]{2}\d{4}\.\d{2}$" 

(請注意,對於.NET,\d將匹配任何腳本中的數字,因此如果只想匹配這些腳本,則可能需要將其替換爲[0-9]

+0

@Downvoter - 照顧評論? – Oded 2012-08-08 18:18:43

+0

它的工作原理。非常感謝你 – Dadou 2012-08-08 19:26:12

1

你有太多的轉義字符。試試:

string sPattern = @"^[a-zA-Z]{2}\d{6}$"; 
0

它失敗了,因爲你正在測試的值是十進制數,你的正則表達式模式沒有。另外,您的正則表達式模式將會查看整個字符串。那就是^表示在字符串的開始處開始並且$表示字符串的結尾。如果你只想要一個「開始」,然後在模式結尾處放下$。

1

A-z無效(混合大小寫),並且您沒有連續6位數字。你有4個小數點,然後是2個。嘗試

^[a-zA-Z]{2}\d{4}.\d{2}$