【发布时间】:2011-11-13 19:45:00
【问题描述】:
如何验证全名的正则表达式?我只想要字母(没有数字)和正则表达式的空格。这是我到目前为止所做的。你能帮我修复正则表达式吗?非常感谢
public static boolean isFullname(String str) {
boolean isValid = false;
String expression = "^[a-zA-Z][ ]*$"; //I know this one is wrong for sure >,<
CharSequence inputStr = str;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches()) {
isValid = true;
}
return isValid;
}
【问题讨论】:
-
不要对人名做出任何假设。时期。当你应该使用
[\pL\pM\p{Nl}]时,不要使用[a-z]。不要忘记标点符号。 -
那些名字像斯嘉丽奥哈拉或巴沙尔阿萨德的人怎么样?
-
引用tchrist,“认为某人的名字只能包含某些字符的代码是愚蠢、冒犯和错误的。”
-
非常感谢您。我现在意识到我不应该验证全名的正则表达式。但我仍然不得不认为,即使符号也可以通过验证 "%^@^#!@*"
标签: java regex string validation matcher