0
我正在檢查應該描述街道名稱的字符串驗證。使用C製作正則表達式的街道模式#
模板是:單詞以大寫字母開頭,數字以1到4位數字開頭。
例子:Name Of Street 101
我嘗試這樣做:
Regex stRegex = new Regex(@"^[A-Z][a-z]+ [1-9]+$");
但它似乎不工作。
什麼樣的模式應該是使它工作?
我正在檢查應該描述街道名稱的字符串驗證。使用C製作正則表達式的街道模式#
模板是:單詞以大寫字母開頭,數字以1到4位數字開頭。
例子:Name Of Street 101
我嘗試這樣做:
Regex stRegex = new Regex(@"^[A-Z][a-z]+ [1-9]+$");
但它似乎不工作。
什麼樣的模式應該是使它工作?
您只檢查一個單詞,並且不允許數字中有零。也許更像這樣的東西?
@"^(?:[A-Z][a-z]+)+[1-9][0-9]{0,3}$"
但是你的模板是有點限制,我想。那麼O'Sullivan Street
?你也可能想要允許多個空格(在空格後面加上另一個+
)。
非常感謝!有用。我只是有一個問題:什麼「?:」意味着? – Billie
@ user1798362它只是一個優化。如果將其忽略,則括號會創建一個您不需要的捕獲組(可以稍後單獨訪問捕獲組匹配的內容)。但是捕獲是昂貴的,這就是爲什麼通常的好做法是讓所有不需要的子集都不需要捕獲。 –
謝謝。最後一個問題,'{0,3}'設置數字的範圍? – Billie