0

電話番号から +1 (国コード) を削除しようとしています (正規化プロジェクトに取り組んでいます)。たとえば、ユーザーが +1(703)-555-5787 の形式の電話番号を持っていて、それを (703)-555-5787 (先頭に +1 を付けない) にしたいとします。

私の理論は、正規表現パターンに基づいて phoneNum 文字列を検索できるというものです。見つかったら、印刷したり、好きなことをしたりできます。私のコードは以下の通りです:

public static String normalizePrefix(final String phoneNum) {
    String ret = phoneNum;

    if (!phoneNum.contains("+1")) {
        logger.log(Level.INFO, "input phone number doesn't contain country code (+1)");
    }
    else {          

        String regex = "(\\+1)([2-9][0-9][0-9])-([2-9][0-9]{2})-([0-9]{4})";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(phoneNum); 


            if (phoneNum.matches(regex)){
                ret = m.group().substring(2, m.end());
            }

    }
    logger.log(Level.INFO, phoneNum + "-->" + ret);
    return ret;
}

私は何が欠けていますか?

4

4 に答える 4

0

正規表現を試してください:

String regex = "\\([0-9]{3}\\)-[0-9]{3}-[0-9]{4}";

if ブロックを次のように変更します。

if (m.find()){
            ret = m.group(0);
}
于 2013-07-04T10:24:35.433 に答える