-2

正则表达式 排除子字符串 name(job corps)
至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个符号,“@”除外

我写了如下内容:

^((?!job corps).)(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!#$%^&*]).*$

我用上面的正则表达式进行了测试,不适用于特殊字符。

任何人都可以指导这个..

4

2 回答 2

0

如果我很好地理解您的要求,您可以使用以下模式:

^(?![^a-z]*$|[^A-Z]*$|[^0-9]*$|[^!#$%^&*]*$|.*?job corps)[^@]*$

如果您只想允许字符 from[a-zA-Z0-9^#$%&*]将模式更改为:

^(?![^a-z]*$|[^A-Z]*$|[^0-9]*$|[^!#$%^&*]*$|.*?job corps)[a-zA-Z0-9^#$%&*]*$

细节:

^ # start of the string
(?! # not followed by any of these cases
    [^a-z]*$  # non lowercase letters until the end
  |
    [^A-Z]*$  # non uppercase letters until the end
  |
    [^0-9]*$
  |
    [^!#$%^&*]*$
  |
    .*?job corps # any characters and "job corps"
)
[^@]* # characters that are not a @
$     # end of the string

演示

注意:你可以写范围#$%&喜欢#-&赢得一个字符。

于 2015-11-06T09:38:51.280 回答
0

stribizhev,你的答案是正确的

^(?!. job corps)(?=. [0-9])(?=. [az])(?=. [AZ])(?=. [!#$%^& ])(?! . @)。$

可以验证以下网址中的表达式:

http://www.freeformatter.com/regex-tester.html

于 2015-11-09T01:41:17.533 回答