繁体   English   中英

正则表达式从字符串中精确匹配 11 位电话号码并从 c# 中的匹配中删除连字符(-)

[英]regex to exact match 11 digit phone number from string and remove hyphen(-) from match in c#

我正在创建一个 c# windows 形式的文本解析器,我想用-分隔符识别从 0 开始的 11 位电话号码,例如 0341-2239548 或 021-34223311 应该使用 Regex.Match 分别转换为 03412239548 和 02134223311。 我找不到相关的正则表达式,有人可以帮我吗?

string[] RemoveCharacter = { "\\"", "(", ")", "/=", "/", ":-", ":", ";", "-" };

        foreach (string word in RemoveCharacter)
        {
            s = s.Replace(word, " ");
        }

删除这些字符后,电话号码也用空格分隔,我不希望这种情况只发生在电话号码上。

您可以使用下面的正则表达式从电话号码中删除所有连字符和所有其他非数字字符

string pattern = @"\b([\-]?\d[\-]?){11}\b";

Regex rgx = new Regex(pattern);

var sentence = "This is phone number 0341-2239548 and 021-34223311";

var matches = rgx.Matches(sentence);

foreach (Match match in matches)
{
    string replacedValue = Regex.Replace(match.Value, @"[^0-9]", "");
    sentence = sentence.Replace(match.Value, replacedValue);
}

演示

如果您有这样的字符串,只需删除您的分隔符。 您不需要正则表达式:

string nr = "0154-1452146";
nr = nr.Replace("-", "");
Console.WriteLine(nr);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM