0

さまざまな入力範囲からダイヤル番号を変換したい

次のような数字を取りたい場合

 +65 12345678
 +44 12345678
 +852 12345678

次に、それらを変換して、すべての +65 の数字になるようにします

12345678

+44の数字になる

001 44 12345678

+852 の数字は

*852 12345678

同時に、スペースや、ハイフンやピリオド ("-"、".") などの他の面白い文字を削除します。これを行うための最適な正規表現または C# での最適なソリューションは何ですか?

4

2 に答える 2

1

デリゲートを使用してこれを行うことができます:

Regex reg = new Regex(@"\+(\d{2,3})[-. ](\d{8})");
string result = reg.Replace(input, delegate(Match m) {
    switch (m.Groups[1].Value) {
        case "65":  return m.Groups[2].Value;
                    break;
        case "44":  return "001 44 " + m.Groups[2].Value;
                    break;
        case "852": return "*852 " + m.Groups[2].Value;
                    break;
        default:    return m.Value;
                    break;
    }
});
于 2013-07-25T17:07:35.357 に答える