2012-11-14 26 views
0

我正在檢查應該描述街道名稱的字符串驗證。使用C製作正則表達式的街道模式#

模板是:單詞以大寫字母開頭,數字以1到4位數字開頭。

例子:Name Of Street 101

我嘗試這樣做:

Regex stRegex = new Regex(@"^[A-Z][a-z]+ [1-9]+$"); 

但它似乎不工作。

什麼樣的模式應該是使它工作?

回答

2

您只檢查一個單詞,並且不允許數字中有零。也許更像這樣的東西?

@"^(?:[A-Z][a-z]+)+[1-9][0-9]{0,3}$" 

但是你的模板是有點限制,我想。那麼O'Sullivan Street?你也可能想要允許多個空格(在空格後面加上另一個+)。

+0

非常感謝!有用。我只是有一個問題:什麼「?:」意味着? – Billie

+0

@ user1798362它只是一個優化。如果將其忽略,則括號會創建一個您不需要的捕獲組(可以稍後單獨訪問捕獲組匹配的內容)。但是捕獲是昂貴的,這就是爲什麼通常的好做法是讓所有不需要的子集都不需要捕獲。 –

+0

謝謝。最後一個問題,'{0,3}'設置數字的範圍? – Billie