例:
String string="Marc Louie, Garduque Bautista";
文字列に単語、カンマ、スペースのみが含まれているかどうかを確認したい。私は正規表現を使用しようとしましたが、私が得た最も近いものはこれです:
String pattern = "[a-zA-Z]+(\\s[a-zA-Z]+)+";
しかし、そこにカンマがあるかどうかはチェックしません。なにか提案を ?
パターンを使用する必要があります
^[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 ]++$
動作するはずです。
なぜ単純ではないのですか:
"[a-zA-Z\\s,]+"
これを使うのが一番
"(?i)[a-z,\\s]+"
「いくつかの単語、任意のスペース、および 1 つのコンマ、それがどこにでもある」という意味である場合、私の気持ちは次のアプローチを提案することです。
"^[^,]* *, *[^,]*$"
これは、「(^) カンマではない 0 個以上の文字で開始し、0 個以上のスペース、次にカンマ、再び 0 個以上のスペース、最後に (^) でない 0 個以上の文字を見つけることができます」という意味です。 ) コンマ".