0

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

我拥有的示例字符串是

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

另一个样本

Contact Tippu at (408) 363 2323     

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

谢谢

4

3 回答 3

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是捕获组。您可以根据您的语言使用它们。

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

于 2013-03-28T12:25:22.393 回答
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);
于 2013-03-28T11:53:36.273 回答
1

假设您的电话号码采用这种格式 - “408.273.3939”,那么这将对您有所帮助

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

而且你的问题我也不清楚。

于 2013-03-28T11:55:24.133 回答