15

例:

String string="Marc Louie, Garduque Bautista";

文字列に単語、カンマ、スペースのみが含まれているかどうかを確認したい。私は正規表現を使用しようとしましたが、私が得た最も近いものはこれです:

String pattern = "[a-zA-Z]+(\\s[a-zA-Z]+)+";

しかし、そこにカンマがあるかどうかはチェックしません。なにか提案を ?

4

5 に答える 5

30

パターンを使用する必要があります

^[A-Za-z, ]++$

例えば

public static void main(String[] args) throws IOException {
    final String input = "Marc Louie, Garduque Bautista";
    final Pattern pattern = Pattern.compile("^[A-Za-z, ]++$");
    if (!pattern.matcher(input).matches()) {
        throw new IllegalArgumentException("Invalid String");
    }
}

編集

Michael の鋭いコメントによると、OP は単一のコンマを意味する場合があります。

^[A-Za-z ]++,[A-Za-z ]++$

動作するはずです。

于 2013-04-14T22:47:36.930 に答える
2

なぜ単純ではないのですか:

"[a-zA-Z\\s,]+"
于 2013-04-14T22:46:25.417 に答える
1

これを使うのが一番

"(?i)[a-z,\\s]+"
于 2013-04-17T06:51:40.477 に答える
0

「いくつかの単語、任意のスペース、および 1 つのコンマ、それがどこにでもある」という意味である場合、私の気持ちは次のアプローチを提案することです。

"^[^,]* *, *[^,]*$"

これは、「(^) カンマではない 0 個以上の文字で開始し、0 個以上のスペース、次にカンマ、再び 0 個以上のスペース、最後に (^) でない 0 個以上の文字を見つけることができます」という意味です。 ) コンマ".

于 2013-04-17T07:10:45.953 に答える