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

2022-09-03 10:10:31

g.:

String string="Marc Louie, Garduque Bautista";

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

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

但它不检查那里是否有逗号。有什么建议吗?


答案 1

您需要使用该模式

^[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 ]++$

应该工作。


答案 2

为什么不简单地说:

"[a-zA-Z\\s,]+"