Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C为正则表达式创建街道模式#_C#_.net_Regex - Fatal编程技术网

C# 使用C为正则表达式创建街道模式#

C# 使用C为正则表达式创建街道模式#,c#,.net,regex,C#,.net,Regex,我试图检查应该描述街道名称的字符串的有效性 模板为:字数以大写字母开头,数字从1到4位 示例:101号街道的名称 我试过这个: Regex stRegex = new Regex(@"^[A-Z][a-z]+ [1-9]+$"); 但它似乎不起作用 要让它发挥作用,模式应该是什么 只检查一个单词,数字中不允许有零。也许更像这样 @"^(?:[A-Z][a-z]+ )+[1-9][0-9]{0,3}$" 不过,我认为您的模板有点限制。奥沙利文街怎么样?您可能还希望允许多个空格(在空格后面添加另

我试图检查应该描述街道名称的字符串的有效性

模板为:字数以大写字母开头,数字从1到4位

示例:
101号街道的名称

我试过这个:

Regex stRegex = new Regex(@"^[A-Z][a-z]+ [1-9]+$");
但它似乎不起作用


要让它发挥作用,模式应该是什么

只检查一个单词,数字中不允许有零。也许更像这样

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

不过,我认为您的模板有点限制。奥沙利文街怎么样?您可能还希望允许多个空格(在空格后面添加另一个
+

非常感谢!它起作用了。我有个问题:“:”是什么意思?@user1798362这只是一个优化。如果不使用,括号将创建一个您不需要的捕获组(稍后可以单独访问与捕获组匹配的内容)。但是捕获是昂贵的,这就是为什么让所有组(您不需要其子匹配)都不捕获通常是一种好的做法。谢谢。最后一个问题,
{0,3}
设置数字的范围?@user1798362它将前一个字符(任意数字)重复0到3次(您的
+
允许任意多个)。请注意,每个重复可以是不同的数字。它相当于
[0-9]?[0-9]?[0-9]?
。我建议你通读一遍,我明白了。再次感谢你!我会在两分钟内给你最好的答案。(由于某种原因,我现在不能做)