HI我是正则表达的新手,我尝试创建基于以下条件的正则表达式
必须包含以下特殊字符($,%,#)
/^[A-Z][a-z0-9A-Z$#%]{3,9}(?=.*[#$%]).\d+$/
我的正则表达式有什么问题
答案 0 :(得分:1)
^[A-Z](?=.*[#$%])[a-z0-9A-Z$#%]{1,7}\d$
您需要在开始时使用lookahead
。\d+
应为\d
。{3,9}
应为{1,7}
答案 1 :(得分:0)
打破正则表达式
/^[A-Z][a-z0-9A-Z$#%]{3,9}(?=.*[#$%]).\d+$/
^ # Match the start of a string
[A-Z] # First character must be a capital letter
[a-z0-9A-Z$#%]{3,9} # The next 3-9 characters must be alphanumeric or one of $, # and %.
(?=.*[#$%]) # Look-ahead, requiring that some character be one of $, # and % (note that this is strictly after the 3-9 character check)
. # Match any character
\d+ # Match one or more numeric digits
$ # Match the end of the string
因此,匹配"Aaaa$^55555555555555555"
之类的字符串。
您需要更改前瞻,可能会在3-9字符检查之前将其移至。你也想让它的长度变小,因为你明确允许大写字母作为第一个字符,数字作为最后一个字符,所以你可能想要匹配1-7字符而不是3-9。