鉴于电话号码都采用以下格式:
(999) 999-9999 Ext.9999"
我想把所有东西都归还给第二个空间,例如:
(999) 999-9999
有什么想法吗?
答案 0 :(得分:5)
如果您的字符串位于s:
string s = "(999) 999-9999 Ext.9999";
string number = s.Split(" Ext")[0];
答案 1 :(得分: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);
}
答案 2 :(得分:1)
不要使用正则表达式。使用Split()
。然后将前两个元素重新连接在一起。
答案 3 :(得分: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);
答案 4 :(得分:0)
看看这个:
string s = "(999) 999-9999 Ext.9999";
string phonenumber1 = Regex.Replace(s, @"(?i)\s*ext\.\d+", "");