通过正则表达式查找字符串中的所有电话号码
本文关键字:电话号码 字符串 正则表达式 查找 | 更新日期: 2023-09-27 18:32:11
我必须在字符串中找到所有电话号码。
我这样做(我的简化 c# 测试代码):
const string testString = "+39702937311";
var m = new Regex("(?<telephonenumber>^''+?(''d[''d-. ]+)?(''([''d-. ]+''))?[''d-. ]+''d$)").Matches(testString);
foreach (Match match in m)
{
var nr = match.Groups["telephonenumber"].Value;
Debug.WriteLine(nr);
foreach (Capture capture in match.Captures)
{
Debug.WriteLine("Index={0}, Value={1}", capture.Index, capture.Value);
}
}
当字符串本身是一个电话号码时,它有效。但是,如果字符串是包含电话号码的较长字符串,则找不到电话号码。
所以,如果我测试
const string testString = "Hello! This is a telephone number: +39702937311 You should call it";
它找不到 +39702937311 作为电话号码。
我该怎么做?谢谢!
(?<telephonenumber>^''+?(''d[''d-. ]+)?(''([''d-. ]+''))?[''d-. ]+''d$)
^ ^
指示的符号是线边界匹配器。 如果你想用这个数学单词,你需要一个单词边界匹配器。
将^
和$
替换为'b
,以指示您要匹配单词而不是行。