java - 使用正则表达式进行密码验证

标签 java xml regex validation schema

我正在使用以下正则表达式我的java代码。

^.*(?=.{6,20})(?=.*[a-z].*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$

当我尝试在 xml 中使用相同的内容时

^.\*(\?=.{6,20})(\?=.\*[a-z].\*[a-z])(\?=.\*[A-Z])(\?=.\*[0-9]).\*$ 

它不工作。它显示异常如下。

java.lang.IllegalArgumentException: cvc-pattern-valid: Value 'narendra1A' is not facet-valid with respect to pattern '^.*(\?=.{6,20})(\?=.*[a-z].*[a-z])(\?=.*[A-Z])(\?=.*[0-9]).*$' for type '#AnonType_passwordcreateUser'.

任何人都可以在这方面提供帮助吗?

谢谢

纳伦德拉

最佳答案

这并不能直接回答您的问题,但它对您来说可能是比尝试使用正则表达式进行密码质量检查更好的选择。

vt-password库是一个优秀的Java库,它实现了基于规则的密码质量检查。除了计算字符/字符类之外,它还执行诸如检查字典、检查以前使用的密码、检查重复字符等操作。

(如果您使用 Spring,在 Spring XML 接线文件中配置密码规则对象非常简单。这允许您在不更改代码的情况下调整规则。)

关于java - 使用正则表达式进行密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386625/

相关文章:

java - 增加堆大小

java - 拆分段落中的每个字符串

java正则表达式用单个字母替换word中的任何双字母

regex - 使用 Ragel 在 Golang 中求两个正则表达式的交集

java - 删除父节点并保留其子节点

java - 列表中的视频缩略图

java - JDBC 断管 Mac

java - 什么是幽灵引用?

C# - XmlNamespaceManager 存在于 'System.Xml.ReaderWriter' (...) 和 'System.Xml (...)'

xml - 从包含 CDATA 标记的 SOAPUI 中的 XML 响应中检索节点值