正则人名的正则表达式

时间:2016-06-10 19:08:00

标签: java regex guava

我是Regex中的新手 !!!!

有专家可以帮我验证人名吗?

如果符合以下情况,我需要验证并抛出错误:

•首字母重复 •第一个字母的数字 •TRIM

感谢!!!!!

1 个答案:

答案 0 :(得分:4)

对于您描述的验证,正则表达式不是最佳选择。 (正则表达式是世界上我最喜欢的东西之一,所以我很难说。)相反,通过使用String类中的基本方法,您将获得更易读,可调试的代码。

通过"首字母"的双重性,你的意思是检查前两个字母是否相同?如果是这样,那么验证可能会为有效名称引发错误,例如" Aaron"。 (取决于你如何处理案件。)如果仍然绝对必要,请使用:
if (name.charAt(0).equalsIgnoreCase(name.charAt(1))) // Throw your error.

就修剪字符串而言,通常最好只使用字符串的.trim()方法来纠正错误而不是验证失败。如果出于某种原因需要抛出错误,请使用:
if (name.length() != name.trim.length()) // Throw your exception.

最后,为了检查第一个字母是否为数字,您需要charAt()Character.isDigit(),如下所示:
if (Character.isDigit(name.charAt(0)) // Throw your exception.

(有关首字母数字问题的详细信息,请参阅this question。)