c# - 使用 RegEx 提取许多电话号码

标签 c# regex

我想从以下正则表达式中提取电话号码。当我一一输入数字时,它会提取所有电话号码格式,但当我在一个字符串中输入 2 个或多个数字时,它不会提取所有电话号码格式。

@"^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$";

最佳答案

当然它不会提取多个数字。该表达式以 ^ 开头,以 $ 结尾,因此如果字符串包含除单个电话号码以外的任何内容,则正则表达式将无法匹配。

一种解决方案是删除那些开始和结束字符,然后循环一次提取一个数字。

Regex rePhone = new Regex(@"\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d");
Match m = rePhone.Match(inputString);
while (m.Success)
{
    string phone = m.Value;
    m = m.NextMatch();
}

关于c# - 使用 RegEx 提取许多电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301193/

相关文章:

c# - 在绑定(bind)中包含链接

c# - 在 .NET Framework 3.0 中将本地时间转换为 UTC

regex - 在Pig脚本中使用正则表达式从日志中提取字符串

php - 在 PHP 中用不可破坏的空间替换特定空间

Java/Hive 正则表达式解释

c# - 是否有与 Perl 的 LWP::UserAgent 等效的 C#?

c# - 为什么 Response.Redirect() 在 Chrome 中有效,但在 IE 中无效?

c# - LINQ over XAML 提供程序

regex - 在可选 token 之间寻找匹配?

javascript - 需要帮助理解 Javascript 的 .match 方法