正则表达式仅支持alphaNumeric和标点字符

时间:2016-02-26 23:27:25

标签: java android regex validation

我正在开发需要密码验证的应用。

我应该检查密码字符串是否只包含字母数字和惩罚,至少应该是字母和数字的组合来传递。

有人可以帮助我并分享一个适用于此验证的正则表达式吗?

由于

1 个答案:

答案 0 :(得分:2)

使用lookaheads的想法。

^(?=\D*\d)(?=.*?[a-zA-Z])\p{Graph}+$

或者作为Java字符串:

"^(?=\\D*\\d)(?=.*?[a-zA-Z])\\p{Graph}+$"
  • (?=\D*\d)第一个前瞻检查digit
  • (?=.*?[a-zA-Z])第二个至少有一个alpha

来自^ start to $ end \p{Graph} + one or more

  • \p{Graph}[\p{Alnum}\p{Punct}]
  • 组成
  • \p{Alnum}字母数字字符[A-Za-z0-9]
  • \p{Punct} !"#$%&'()*+,-./:;<=>?@[]^_`{|}~
  • 之一

See demo at regexplanet (Java)