Java 使用正则表达式验证输入字符串
g.:
String string="Marc Louie, Garduque Bautista";
我想检查字符串是否只包含单词,逗号和空格。我试图使用正则表达式,我得到的最接近的是这个:
String pattern = "[a-zA-Z]+(\\s[a-zA-Z]+)+";
但它不检查那里是否有逗号。有什么建议吗?
g.:
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,]+"