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");
}
}
编辑
根据迈克尔的敏锐评论,原帖作者可能是指单个逗号,在这种情况下:
^[A-Za-z ]++,[A-Za-z ]++$
应该工作。
"[a-zA-Z\\s,]+"
\s
匹配的不仅仅是空格。 - Boris the Spider"(?i)[a-z,\\s]+"
"^[^,]* *, *[^,]*$"
在Java中验证字符串,其中开头和结尾没有特殊字符,但可能在中间有一些特殊字符。
String strRGEX = "^[a-zA-Z0-9]+([a-zA-Z0-9-/?:.,\'+_\\s])+([a-zA-Z0-9])$";
String toBeTested= "TesADAD2-3t?S+s/fs:fds'f.324,ffs";
boolean testResult= Pattern.matches(strRGEX, toBeTested);
System.out.println("Test="+testResult);