我需要正则表达式来验证串具有最小长度6,它是含有至少一个非字母数字字符例如:"eN%{S$u)","h9YI!>4j","{9YI!;4j","eN%{S$usdf)","dfh9YI!>4j","ghffg{9YI!;4j".
这个工作正常,^.*(?=.{6,})(?=.*\\d).*$"但在字符串不包含任何数字的情况下(例如"eN%{S$u)")它不起作用.
mar*_*cog 11
^(?=.{6})(.*[^0-9a-zA-Z].*)$
Run Code Online (Sandbox Code Playgroud)
我们使用正向前瞻来确保至少有6个字符.然后我们匹配寻找至少一个非字母数字字符([^0-9a-zA-Z])的模式.该.*的匹配任意数量的围绕这一非字母数字字符的任意字符,但当时我们已经到达这里,我们已经检查了,我们会等额至少6个.
^.*(?=.{6,})(?=.*\\d).*$"
Run Code Online (Sandbox Code Playgroud)
是你试过的正则表达式.以下是一些建议:
\d匹配一个数字,并且(?=.*\\d)是其中之一的先行者.这就是为什么你遇到了你提到的字符串之类的问题eN%{S$u)..*通过使用将第二个前瞻与后面的前瞻结合起来.*\\d.*.| 归档时间: |
|
| 查看次数: |
11723 次 |
| 最近记录: |