查找字符串和格式的电话号码

时间:2013-03-28 11:37:24

标签: c# sql-server regex formatting

我有未格式化的电话号码的字符串,有没有办法找到它们并格式化数字并保存?

我拥有的示例字符串

Name: Tippu     
Phone: 408.273.3939
Email: tippu@tippu.com

另一个样本

Contact Tippu at (408) 363 2323     

在这些示例中,我需要找到电话号码并将其更改为NNN-NNN-NNNN格式。 数据在SQL Server中,我使用的是c#。

由于

3 个答案:

答案 0 :(得分:2)

您可以使用以下伪代码。

string.Replace(/\(?(\d{3})[)(-.\s]*(\d{3})[)-.\s]*(\d{4})/, "$1-$2-$3")

它将以NNN-NNN-NNNN格式替换所提供的示例。

让我解释一下正则表达式 开头的\(?查看字符串是否以括号开头 (\d{3})查找三个数字,并创建一个捕获组。 [)(-.\s]*会查找) ( - .space*请务必注意括号后跟空格的情况 \d{4}查找4位数 此处$1 $2$3是捕获组。您可以根据自己的语言使用它们。

我相信,您可以在C#中使用Regex.Replace()函数

答案 1 :(得分:1)

可能不是最好的...... 但这就像我会做的那样。它至少可能有所帮助。首先,我假设你的字符串中的最后一个数字代表电话号码:

x = <your string>.replace(/[^0-9]/g,'');
x = x.substring(x.length-10);
x = x.substring(0,3) +'-'+ x.substring(3,6) + '-' + x.substring(6);

答案 2 :(得分:1)

假设您的电话号码采用此格式 - “408.273.3939” 那么这对你有帮助

 var stringText = "408.273.3939";
            var phoneArr = stringText.Split('.');
            String.Format("%s-%s-%s", phoneArr[0], phoneArr[1], phoneArr[2]);

此外,我的问题也不清楚。