废话不多说,直接上代码:
/// <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; }
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构