废话不多说,直接上代码:
/// <summary> /// 提取字符串中的电话号码(手机号码、座机号码、400电话) /// 正则表达式提取 /// 一、手机号码:11位 ([1][3456789]\d{9}) /// 二、座机号码:3位或4位区号 [- ] 7位或8位电话号 /// 1.3位或4位区号7位或8位电话号 【0376*******、020********】 (0\d{2}\d{8})|(0\d{3}\d{7}) /// 2.3位或4位区号[- ]7位或8位电话号【0376-*******、0376 *******、020-********、020 ********】 (0\d{2}[- ]\d{8})|(0\d{3}[- ]\d{7}) /// 3.(3位或4位区号)7位或8位电话号 【(0376)*******、(020)********】 (\(0\d{2}\)\d{8})|(\(0\d{3}\)\d{7}) /// 三、400电话 【400-***-****、400*******】 (400-\d{3}-\d{4})|(400\d{7}) /// 正则表达式:([1][3456789]\d{9})|(0\d{2}\d{8})|(0\d{3}\d{7})|(0\d{2}[- ]\d{8})|(0\d{3}[- ]\d{7})|(\(0\d{2}\)\d{8})|(\(0\d{3}\)\d{7})|(400-\d{3}-\d{4})|(400\d{7}) /// </summary> /// <param name="input"></param> /// <returns></returns> public static List<string> GetTelephoneList(string input) { //集合存放提取出来的电话号码 List<string> list = new List<string>(); Regex regex = new Regex(@"([1][3456789]\d{9})|(0\d{2}\d{8})|(0\d{3}\d{7})|(0\d{2}[- ]\d{8})|(0\d{3}[- ]\d{7})|(\(0\d{2}\)\d{8})|(\(0\d{3}\)\d{7})|(400-\d{3}-\d{4})|(400\d{7})"); //Match集合,匹配成功的字符串集合 MatchCollection collection = regex.Matches(input); //遍历Match集合,取出值 string telephone; foreach (Match item in collection) { foreach (Group group in item.Groups) { telephone = group.Value.Trim(); if (!string.IsNullOrEmpty(telephone)) { //加上去重判断 if (!list.Contains(telephone)) { list.Add(telephone); } } } } return list; }
标签:0376,机号码,400,telephone,020,手机号码,位区 From: https://www.cnblogs.com/wsk198726/p/16715445.html