Java使用正则表达式来验证输入字符串

Tom*_*Ngo 15 java regex

G.:

String string="Marc Louie, Garduque Bautista";
Run Code Online (Sandbox Code Playgroud)

我想检查一个字符串是否只包含单词,逗号和空格.我试图使用正则表达式,我得到的最接近的是:

String pattern = "[a-zA-Z]+(\\s[a-zA-Z]+)+";
Run Code Online (Sandbox Code Playgroud)

但它不会检查是否有逗号.有什么建议吗?

Bor*_*der 29

您需要使用该模式

^[A-Za-z, ]++$
Run Code Online (Sandbox Code Playgroud)

例如

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

根据迈克尔精明的评论,OP可能意味着一个逗号,在这种情况下

^[A-Za-z ]++,[A-Za-z ]++$
Run Code Online (Sandbox Code Playgroud)

应该工作.