首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#正则表达中+号使用中遇到的有关问题

2012-05-27 
C#正则表达中+号使用中遇到的问题最近用正则表达式验证手机账号,private static Regex RegPhone new Reg

C#正则表达中+号使用中遇到的问题
最近用正则表达式验证手机账号,private static Regex RegPhone = new Regex("^(+86|86)?0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$");若没有(+86|86)?,该正则表达式正确;若只有(86)?同样正确。但当有+86时报错。给+86加上\改为\+86时,生成时报错,若加两个\\变为\\+86生成时不报错,但是正确的号码如+8613956686246无法通过。请问,应该怎么写这个正则表达式?

[解决办法]

C# code
            Regex RegPhone = new Regex("^(?:\\+?86)?0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$");            string str = "+8613956686246";            Console.WriteLine(RegPhone.IsMatch(str));//true
[解决办法]
new Regex(@"^((\+86)|(86))?0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$", RegexOptions.IgnoreCase | RegexOptions.Multiline)

热点排行