验证全名的 Java 正则表达式只允许空格和字母

标签 java regex validation

我希望正则表达式仅验证字母和空格。基本上这是为了验证全名。例如:Steve Collins 先生或 Steve Collins 我试过这个正则表达式。 “[a-zA-Z]+\.?”但是没有用。有人可以帮助我吗 p.s.我使用Java。

public static boolean validateLetters(String txt) {

    String regx = "[a-zA-Z]+\\.?";
    Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(txt);
    return matcher.find();

}

最佳答案

怎么样:

  • 彼得·穆勒
  • 弗朗索瓦·奥朗德
  • 帕特里克·奥布莱恩
  • 西尔瓦娜·科赫-梅林

验证名称是一个难题,因为有效名称不仅由字母 A-Z 组成。

至少你应该对字母使用 Unicode 属性并添加更多特殊字符。第一种方法可以是例如:

String regx = "^[\\p{L} .'-]+$";

\\p{L}Unicode Character Property匹配任何语言的任何类型的字母

关于验证全名的 Java 正则表达式只允许空格和字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805555/

相关文章:

java - 从命令行运行 netbeans maven 项目

java - 在java语言中,如何将纳秒值(例如1568694302232954486和1568703521360049938)转换为Java Date对象?

java - 正则表达式匹配长度大于n的字母和数字字符串?

asp.net - Telerik rad 日期选择器在用户键入 future 日期时显示错误消息

ruby-on-rails - Rails 模型验证 - validates_inclusion_of

typescript - 如何在 Typescript 中轻松重用一组装饰器

Java,对具有不同参数的方法使用@Override时出错?

java - 安卓应用开发

java - 使用单个正则表达式从一个字符串中提取几个子字符串

php - pre_replace 一个字符串以将下划线后面的每个单词大写