如果字符串包含除字母(包括重音符号)、连字符、撇号和单个空格之外的字符,如何创建返回 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/