我试图验证给定的字符串。它应该允许(a-z,单词,逗号,点之间的空格)。
我尝试了这个,但它不起作用: final String name =" / ^ [a-z] +(\ s + [a-z] +)* $ / i&#34 ;;
Pattern pattern = Pattern.compile(name );
Matcher matcher = pattern.matcher("Ravi is a java developer");
System.out.println("***********"+matcher.matches());
请向我建议。
提前致谢。
答案 0 :(得分:1)
您提供的正则表达式和示例将无效,因为您不允许使用大写字母。 你可以试试这个:
([a-zA-Z]*(\s)*[\.\,]*)*
答案 1 :(得分:0)
您需要启用不区分大小写的修饰符(?i)
String s = "Ravi is a java developer";
System.out.println(s.matches("(?i)[a-z]+(\\s+[a-z]+)*")); // true
OR
System.out.println(s.matches("(?i)[a-z]+([,.\\s]+[a-z]+)*")); // true
答案 2 :(得分:0)
这应该有效:
String name = "[a-zA-z]*([,.\\s]+[a-z]*)*"
这应该会有所帮助:https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
答案 3 :(得分:0)
为何复杂化?
"^A-Z[a-z \\.,]+$" <-- something that starts with a capital letter and has only letters, space, dots and commas after that.
我很惊讶一般人创造的复制品有多复杂。