java - 使用正则表达式进行名称过滤器 - Java

标签 java regex filter

如果字符串包含除字母(包括重音符号)、连字符、撇号和单个空格之外的字符,如何创建返回 false 的表达式?饶了我吧,“Влади́мир Пу́тин 和豊田章男呢?”。我意识到尝试确定什么是名称、什么不是名称是愚蠢的,但这仅用于教育目的。

另外,英文名字中还有其他常见的符号吗?

最佳答案

你可以试试这个:

private static final Pattern namePattern =
    Pattern.compile("^[-' \\p{L}\\p{M}]+$");

public static boolean isValidName(String text) {
    return namePattern.matcher(text).matches()
        && text.indexOf("  ") < 0
        && !text.startsWith(" ") && !text.endsWith(" ");
}

关于java - 使用正则表达式进行名称过滤器 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178734/

相关文章:

java - 使用 Java PrcoessBuilder 运行 Python 远程文件

regex - 使用 Regexp 提取和处理 GPU 温度信息

c# - 正则表达式 c# : Last Name in an email to include only one hyphen

php - CSS3 Webkit-filter 属性

linux - 在 Linux 中使用过滤器删除电子邮件地址的一部分

java - 字符串赋值和输出

java - spring 集成 ExecutorChannel 的多订阅者

java - Tomcat为什么要检查文件完整性

c# - 获取网页的 "summary"

Oracle 带过滤器的全外连接 (ANSI) 未按预期工作