3

私は Java を使用しており、次のような数値シーケンスを検証する必要があります: 9999/9999.

この正規表現を使用してみまし\\d{4}\\\\d{4}たが、取得falseしていmatches()ます。

私のコード:

    Pattern regex = Pattern.compile("\\d{4}\\\\d{4}");

    if (!regex.matcher(mySequence).matches()) {
        System.out.println("invalid");
    } else {
        System.out.println("valid");
    }

誰でも私を助けてもらえますか?

4

3 に答える 3

7

正規表現パターンは、スラッシュ文字ではなくバックスラッシュと一致しようとしています。以下を使用する必要があります。

Pattern regex = Pattern.compile("\\d{4}/\\d{4}")
于 2013-05-21T13:55:03.433 に答える
7
Pattern regex = Pattern.compile("\\d{4}\\\\d{4}");

する必要があります

Pattern regex = Pattern.compile("\\d{4}/\\d{4}");
于 2013-05-21T13:55:30.973 に答える
2

パターンを次のように変更します。

Pattern regex = Pattern.compile("\\d{4}\\\\\\d{4}");

マッチング用"9999\\9999"(実際の値: 9999\9999) (Java では宣言中にエスケープする必要がありますString)

または、一致させたい場合は"9999/9999"、上記のソリューションがうまく機能します:

Pattern regex = Pattern.compile("\\d{4}/\\d{4}");
于 2013-05-21T13:58:42.870 に答える