日期:2014-05-17  浏览次数:20841 次

c# 正则表达式写法?
我需要匹配字符串中的电话号码,如下:

情况1:“中国最专业、规范的400电话申请服务商!中国400电话网 400-888-9797 400电话”,我需要匹配到400-888-9797
情况2:“360元起拥有400电话 可自助管理功能强大开通快捷,抢号热线4008818865”,需要把“4008818865”匹配出来
情况3:“上海强生搬家,多年的搬家搬场经验, 服务称心,搬运省心 服务电话:65206050www.qiangshenbj.cn”需要把“65206050”匹配出来
情况4:“欢迎来电咨询:13310088888”,匹配到”13310088888“;

总之就是要匹配到字符串中能联系到的电话号码,请问怎么写正则表达式?

------解决方案--------------------


C# code

string str = "中国最专业、规范的400电话申请服务商!中国400电话网 400-888-9797 400电话360元起拥有400电话 可自助管理功能强大开通快捷,抢号热线4008818865上海强生搬家,多年的搬家搬场经验, 服务称心,搬运省心 服务电话:65206050www.qiangshenbj.cn欢迎来电咨询:13310088888";
        Regex re = new Regex("(\\d{3}\\-?){2}\\d{2,4}", RegexOptions.None);
        MatchCollection mc = re.Matches(str);
        string result = string.Empty;
        foreach (Match ma in mc)
        {
            result += ma.Value;
        }

//结果:
//400-888-9797
//4008818865
//65206050
//1331008888