我是Regex中的新手 !!!!
有专家可以帮我验证人名吗?
如果符合以下情况,我需要验证并抛出错误:
•首字母重复 •第一个字母的数字 •TRIM
感谢!!!!!
答案 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。)