-2

人々が以前にこれを尋ねたことは知っていますが、解決策が見つかりません。

文字列が次のパターンに一致するかどうかを確認しようとしています: 大文字または文字 "x" ではなく、任意の数字 (ドットなどはありません)。

4

4 に答える 4

3

あなたはおそらくしたいです

[xX]\d

文字列リテラルでは、バックスラッシュをエスケープする必要があることに注意してください: "[xX]\\d".

于 2013-10-08T19:03:42.403 に答える
1

次の正規表現を使用できます。

"(?i)^x\\d+$"
  1. (?i)xまたはXに一致する大文字と小文字の一致を無視するためのものです
  2. \d+ は、1 つ以上の数字 [0-9] に一致するためのものです。
于 2013-10-08T19:03:57.090 に答える
1

これの正規表現は[xX]\d. 括弧内は、一致させたい文字のリストです。大文字または小文字の「X」で一致させて、それを実現します。次に、任意の数字で一致させたいとします。それが \d の機能です。\d は「任意の数字」を意味します。これを Java コードで実行する方法は次のとおりです。

package com.sandbox;

public class Sandbox {

    public static void main(String[] args) {
        String s = "x9";
        System.out.println(s.matches("[xX]\\d"));
    }
}

String に 2 つのバックスラッシュがあることに注意してください。\エスケープ文字だからです。Java では、実際にシンボルを使用する必要があり、そのためには と入力してシンボル\をエスケープする必要があります。\\\

于 2013-10-08T19:04:42.140 に答える
0

あなたの要件を理解した場合:

(x|X)[0-9]+

これは最初に "x" または "X" (| は or) のいずれかに一致します。次に、明らかに数字であるグループ [0-9] の 1 つ以上の文字に一致します。

于 2013-10-08T19:02:14.957 に答える