Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从字符串中删除电话号码_C#_Regex_Phone Number - Fatal编程技术网

C#从字符串中删除电话号码

C#从字符串中删除电话号码,c#,regex,phone-number,C#,Regex,Phone Number,我想使用C#从字符串中删除电话号码。我一直在尝试使用不同的regex变体,但收效甚微 我想要一个快速执行的解决方案(如果可能的话,可以使用sub 0.1s),因为它将在生产环境中广泛使用 这是我一直在测试的代码 var stringContainingPhoneNumber = "This is some random text, I would like £4.99 for this item, please call me on 07828123456 for further informa

我想使用C#从字符串中删除电话号码。我一直在尝试使用不同的regex变体,但收效甚微

我想要一个快速执行的解决方案(如果可能的话,可以使用sub 0.1s),因为它将在生产环境中广泛使用

这是我一直在测试的代码

var stringContainingPhoneNumber = "This is some random text, I would like £4.99 for this item, please call me on 07828123456 for further information.";
var numberReplace = new Regex(@"((\d){3}-1234567)|((\d){3}\-(\d){3}\-4567)|((\d){3}1234567)");
stringContainingPhoneNumber = numberReplace.Replace(stringContainingPhoneNumber, "[TELEPHONE REMOVED]");

您可能需要使用电话格式库来识别有效的电话号码。你可以用你想要的任何东西来代替它们。你可以用


这应该适用于您的正则表达式

\d{11}[\s\d-]+

正则表达式中的数字将匹配字符串中该长度的数字序列。

只需将正则表达式更改为

var numberReplace = new Regex(@"((\d){3}-1234567)|((\d){3}\-(\d){3}\-4567)|((\d){3}1234567)|(\b(\d){5}123456\b)");

您的正则表达式不起作用,因为在输入字符串中,电话号码包含11位数字,但在您的模式中,只有10位数字。此外,它也不是以假定英国数字的123456结尾,例如:

“这是一些随机文本,我想要4.99英镑购买此商品,请致电07828123456了解更多信息,或通过(020)2341 0231或(01204)54203发送传真。”

这应该只得到电话号码:


[\d\s-\(\)]{10,}

您知道要删除的电话号码的确切格式吗?Id不起作用,因为您的示例中的电话号码以
123456
结尾,而您的模式有
1234567
这些链接可能会很有帮助:看看这篇文章的第二个答案人们可以使用多种格式,由于输入将是来自另一个网站的免费文本输入。这工作很好,感谢括号的建议,因为我没有考虑过。非常感谢。