我想从以下正则表达式中提取电话号码。当我一一输入数字时,它会提取所有电话号码格式,但当我在一个字符串中输入 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/