首页 > 解决方案 > 正则表达式错误地评估 true

问题描述

我正在尝试验证至少一个大写字母、一个小写字母和一个数字。到目前为止,我有:

"orange" -match "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"
False

好的

"Orange22" -match "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"
True

好的

"orange22" -match "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"
True

不好 - 没有大写字母,但仍然匹配。

正则表达式示例有什么问题?

标签: regexpowershell

解决方案


Powershell 正则表达式默认不区分大小写。而不是使用-matchuse -cmatch

"orange22" -cmatch "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"

推荐阅读