0

電話番号がすべてこの形式になっているとします。

(999) 999-9999 Ext.9999"

すべてを 2 番目のスペースに戻したい、例えば:

(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

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 に答える
1

正規表現を使用しないでください。を使用しSplit()ます。次に、最初の 2 つの要素を連結して元に戻します。

于 2012-11-16T18:58:56.873 に答える
0

これをチェックしてください:

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