如果纯文本中有空格,则密码正则表达式不匹配
password Regex not matching if spaces around in plain text
构建正则表达式以匹配以纯文本形式存储的密码。
8-15 个字符,必须至少包含:
- 1个大写字母
[A-Z]
- 1个小写字母
[a-z]
- 1个号码
\d
- 1 个特殊字符
[!@#$%\^&\*]
我遇到的问题是,当密码与其他文本或后面的空格内联时,它 return 不匹配。当它单独没有空格时它匹配。
示例:
这是一个 Testing!23 被其他文本包围。
正在测试!23
(?=.{8,15})(?=.*[!@#$%\^&\*])(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*
您想查找所有符合您列出的条件的非空白块。
使用
(?<!\S)(?=\S{8,15}(?!\S))(?=[^!@#$%^&*\s]*[!@#$%^&*])(?=[^\s\d]*\d)(?=[^\sa-z]*[a-z])(?=[^\sA-Z]*[A-Z])\S+
详情
(?<!\S)
- 空格或字符串的开头应该在当前位置之前
(?=\S{8,15}(?!\S))
- 在当前位置之后,必须有 8 到 15 个非空白字符,后跟空白或字符串结尾
(?=[^!@#$%^&*\s]*[!@#$%^&*])
- 在集合 之外的零个或多个非空白字符之后必须有一个来自 [!@#$%^&*]
集合的字符
(?=[^\s\d]*\d)
- 0+ 非空白和非数字字符后必须有一个数字
(?=[^\sa-z]*[a-z])
- 1 个小写字母必须出现在除空格和小写字母之外的 0+ 个字符之后
(?=[^\sA-Z]*[A-Z])
- 1 个大写字母必须出现在除空格和大写字母之外的 0+ 个字符之后
\S+
- 所有检查结束,如果成功,则匹配并消耗 1+ 个非空白字符(最后)。
构建正则表达式以匹配以纯文本形式存储的密码。
8-15 个字符,必须至少包含:
- 1个大写字母
[A-Z]
- 1个小写字母
[a-z]
- 1个号码
\d
- 1 个特殊字符
[!@#$%\^&\*]
我遇到的问题是,当密码与其他文本或后面的空格内联时,它 return 不匹配。当它单独没有空格时它匹配。
示例:
这是一个 Testing!23 被其他文本包围。
正在测试!23
(?=.{8,15})(?=.*[!@#$%\^&\*])(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*
您想查找所有符合您列出的条件的非空白块。
使用
(?<!\S)(?=\S{8,15}(?!\S))(?=[^!@#$%^&*\s]*[!@#$%^&*])(?=[^\s\d]*\d)(?=[^\sa-z]*[a-z])(?=[^\sA-Z]*[A-Z])\S+
详情
(?<!\S)
- 空格或字符串的开头应该在当前位置之前(?=\S{8,15}(?!\S))
- 在当前位置之后,必须有 8 到 15 个非空白字符,后跟空白或字符串结尾(?=[^!@#$%^&*\s]*[!@#$%^&*])
- 在集合 之外的零个或多个非空白字符之后必须有一个来自 (?=[^\s\d]*\d)
- 0+ 非空白和非数字字符后必须有一个数字(?=[^\sa-z]*[a-z])
- 1 个小写字母必须出现在除空格和小写字母之外的 0+ 个字符之后(?=[^\sA-Z]*[A-Z])
- 1 个大写字母必须出现在除空格和大写字母之外的 0+ 个字符之后\S+
- 所有检查结束,如果成功,则匹配并消耗 1+ 个非空白字符(最后)。
[!@#$%^&*]
集合的字符