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