繁体   English   中英

C#正则表达式和花括号重复

[英]C# Regex And Curly Braces For Repetition

我对正则表达式相对较新,但仍在努力。 重复是目前令我沮丧的根源。 我被要求写一个正则表达式来匹配+447格式的手机号码,然后是一个9位数的字符串。 经过一番阅读,我想到了:

string num = @"+447123456789";
string reg = "^[+447]([0-9]{9})$";
Regex filter = new Regex(reg);

假定已读取,必须以+447([...]指定要匹配的显式字符)开头,后跟任意9位数字0-9,但是filter.IsMatch(num)始终返回false。 我尝试用+代替{9},尽管它在失败时也会返回true(即num持有值“ +4”),但它返回true。

鉴于我的结果,我认为我误解了[...](否则,简单的+4不应返回true)和{...}(我理解它的意思是前面的序列(在我的情况下, [0-9])重复...次,在我的情况下为9)。

非常感谢您的帮助,在此先感谢CprlKleg

尝试string reg = "^\\+447([0-9]{9})$"; string reg = "^\\+447(\\d{9})$";

您需要使用^\\+447(\\d{9})$

您必须知道+是Regex中的特殊字符,因此需要反斜杠字符来避免它。 + or . or $ + or . or $和许多其他字符被视为特殊字符。

\\d仅表示数字。 \\w表示字符+数字+下划线

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM