我需要一个必须在字符串上匹配的参数的正则表达式。
这里是......
该字符串存在于最少8个最多20个字符之外。
此字符串的这些字符可能是alfabet或特殊字符的字符 - 换句话说......除了空白之外的所有字符
在完整字符串中必须至少包含1个数字。
字符串不能以数字或下划线开头
字符串的最后两个字符必须相同,但如果最后这些字符是大写字母或非资本字符(不区分大小写),那么它很重要
必须全部匹配:
+234567899
a_1de*Gg
xy1Me*__
!41deF_hij2lMnopq3ss
C234567890123$^67800
*5555555
sDF564zer""
!!!!!!!!!4!!!!!!!!!!
abcdefghijklmnopq9ss
可能不匹配:
不能少于8个或更多20个字符:
a_1+Eff
B41def_hIJ2lmnopq3stt
不能包含空格:
A_4 e*gg
b41def_Hij2l nopq3ss
无法以数字或下划线开头: __1 + Eff为 841DEf_hij2lmnopq3stt
不能以2个不同的字符结尾:
a_1+eFg
b41DEf_hij2lmnopq3st
不能没有字符串中的数字:
abCDefghijklmnopqrss
abcdef+++dF
!!!!!!!!!!!!!!!!!!!!
------------------------------------------------------
这就是我到目前为止......但是我真的在这个...... 如果你完全不知道答案,那不是问题...... 我只是想朝着正确的方向前进
([^0-9_])(?=.*\d)(\S{8,20})(?i:[\S])\1
答案 0 :(得分:0)
如果您可以使用多个正则表达式,请尝试以下操作:
\S{8,20}
[^_0-9].*\d.*
.*(?i)(.)\1
如果必须是1,请使用:
^[^_\s\d](?=.*\d)\S{5,17}(?i)(\S)\1$
(我必须让Casmir帮助我找到最后一个错误。)
编辑:
这是
任何一个字符,而不是下划线,空格或数字。
(必须跟随任何字符,然后是数字)
然后是五到十七个非空白字符
然后(从现在开始不区分大小写),一个空白字符,后跟相同的字符
答案 1 :(得分:0)
你可以试试这个:
^[^\s\d_](?=.*\d)\S{5,17}(?i)(\S)\1$