[英]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.