Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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#_Regex - Fatal编程技术网

C# 如何正确写入正则表达式,使其匹配特定的起始数字?

C# 如何正确写入正则表达式,使其匹配特定的起始数字?,c#,regex,C#,Regex,我有一个要扩展的正则表达式,以便它匹配特定输入的开头 现在,我的正则表达式与以下内容匹配: 3位-7位 和 3位数字7位(一起) 我想通过添加以下内容对此进行扩展: +46(空格)073-4567891(以+46开头,后跟空格,后跟3位数字,后跟7位数字) 我的尝试: ^\d{3}-\d{7}$|^\d{10}$|^[+46]\s\d{3}-\d{7}$|^[+]\d{46}\s\d{10}$ 我使用检查正则表达式是否正确,但我没有得到任何匹配 我做错了什么 如果有任何不清楚的地方,只需询问您

我有一个要扩展的正则表达式,以便它匹配特定输入的开头

现在,我的正则表达式与以下内容匹配: 3位-7位 和 3位数字7位(一起)

我想通过添加以下内容对此进行扩展:

+46(空格)073-4567891(以+46开头,后跟空格,后跟3位数字,后跟7位数字)

我的尝试:

^\d{3}-\d{7}$|^\d{10}$|^[+46]\s\d{3}-\d{7}$|^[+]\d{46}\s\d{10}$
我使用检查正则表达式是否正确,但我没有得到任何匹配

我做错了什么


如果有任何不清楚的地方,只需询问您的模式在使用[+46]时不起作用,这意味着从括号中选择任何字符,因此请修改您的模式或:

使用此选项可以捕获提到的字符串:

^\+46 \d{3}-\d{7}$
\+
-首先转义以获取加号字符

46
-然后46显式,因为它们(可能)在您的情况下永远不会改变

-空间捕捉空间


\d{3}-d{7}
-三位数字加上破折号和七位数字。

您的问题是
[+46]
匹配“一个+,四个或六个字符”,而
[+]\d{46}
匹配“一个+字符,然后是46个数字”-这两者都不是您想要的


将两者替换为
[+]46
\+46
,两者都匹配“一个+字符后跟一个4字符和一个6字符”。(两者都是转义+字符的替代方法。)

以下正则表达式:
(\+46)?(\d{3})(\124;)和(\d{6,7})
将其捕获为输入:

  • +460764567891
  • +46 076 567891
  • +46076567891
  • +46 076-567891
  • 0764567891
  • 076 4567891

^\d{3}-\d{7}$| ^\d{10}$| ^\+46\d{3}-\d{7}$t将其与我的代码结合起来,我仍然无法理解matches@Ra3IDeN我想你错过了46之后的空格。所以试试这个:
^\d{3}-\d{7}$|^\d{10}$|^\+46\d{3}-\d{7}$
你说得对!很抱歉这样说了一段时间。非常感谢并感谢@Rawling提供的详细解释。@Ra3IDeN没问题,很高兴它能起作用;)你可以随时更新答案,即使不将其标记为已接受,所以如果你发现Rawling的答案也很有帮助,请向上投票:)我的测试数据:+460764567891和你回答后的新正则表达式模式:^\d{3}-\d{7}$| ^\d{10}$|[+]46\d{3}-\d{7}$我仍然没有找到匹配项:(@Ra3IDeN你已经删除了第四个选项-“带+46,不带连字符”.您的输入在+46之后也没有空格,您的问题说它需要空格。实际上这两个空格都需要,我只是测试了一个,看看这是否有效,因为我更容易看到手动错误。我没有不尊重您,我感谢您的回答和详细解释。