0

鉴于电话号码都是这种格式:

(999) 999-9999 Ext.9999"

我想将所有内容都返回到第二个空间,例如:

(999) 999-9999

有任何想法吗?

4

5 回答 5

5

如果您的字符串在 s 中:

   string s = "(999) 999-9999 Ext.9999";
   string number = s.Split(" Ext")[0];
于 2012-11-16T19:01:07.817 回答
2

如果你想要一个完美的匹配,你可以使用这个表达式:

string s = "(999) 999-9999 Ext.9999";
Match m = Regex.Match(s, @"(?<nr>\([0-9]{3}\)\s+[0-9]{3}\-[0-9]{4})");
if (m.Groups["nr"].Success)
{
    Console.WriteLine(m.Groups["nr"].Value);
}
于 2012-11-16T19:02:22.960 回答
1

不要使用正则表达式。使用Split(). 然后将前两个元素重新连接在一起。

于 2012-11-16T18:58:56.873 回答
1

其中s包含完整的刺痛。如果真的“全部采用这种格式” ,那么您可以只取前 14 个字符:

string number = s.SubString(0, 14);

或者更灵活、更安全:

var idx = s.IndexOf(" Ext");
//good idea to check if idx == -1
string number = s.SubString(0, idx);
于 2012-11-16T19:06:59.137 回答
0

看看这个:

    string s = "(999) 999-9999 Ext.9999";
    string phonenumber1 = Regex.Replace(s, @"(?i)\s*ext\.\d+", "");
于 2012-11-16T19:07:46.253 回答