0

我想使用正则表达式从 HTML 中提取电话号码。我正在使用这个正则表达式

\d{4}\s\d{3}\s\d{3}

电话号码1234 546 567。此正则表达式成功地从 HTML 中提取给定的电话号码。

但是当有另一个数字(我不想提取)时会出现问题:1234 567 89023. 现在它也在从这个数字中提取1234 567 890,但我不希望它从那个数字中提取任何东西。

然后我将正则表达式更改为

^\d{4}\s\d{3}\s\d{3}$

但现在它甚至没有提取任何有效数字。

我应该怎么办?编辑:

string MatchAusPhoneNumber = @"\D(\d{4}\s\d{3}\s\d{3})\D";
MatchCollection mathph2 = Regex.Matches(chk, MatchAusPhoneNumber);

foreach (Match matchio in mathph2)
{
    foreach (Capture capture in matchio.Captures)
    {
        if (my.ContainsKey(capture.Value) == false)
        {
            my.Add(capture.Value, capture.Value);
            mylist.Add(capture.Value);
        }
    }
}
4

1 回答 1

2

编辑:我刚刚重读了您的问题,听起来您想从 HTML 中提取 4-3-3 位数字组。如果是这种情况,请尝试这样的正则表达式:

\D(\d{4}\s\d{3}\s\d{3})\D

\D将匹配除数字之外的所有内容。这()是在第一个捕获组中捕获实际的电话号码。


旧答案:如果您希望最后一组数字为 3 到 5 个字符,请尝试以下操作:

\d{4}\s\d{3}\s\d{3,5}

\d{3,5}意味着可以有3to 5 \ds。

于 2013-06-28T12:53:19.130 回答