用于验证全名的Java Regex仅允许java中的空格,字母,逗号,点

时间:2014-11-25 12:13:21

标签: java regex

我试图验证给定的字符串。它应该允许(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());

请向我建议。

提前致谢。

4 个答案:

答案 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.

我很惊讶一般人创造的复制品有多复杂。