定期提取字符串中的手机号码/座机号码/400 号码
最编程
2024-04-23 12:50:36
...
废话不多说,直接上代码:
/// <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; }
上一篇: 验证手机号码和座机号码的正则表达式
下一篇: 写电话号码 - 手机