regex - 正则表达式错误地评估 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
不好 - 没有大写字母,但仍然匹配。
正则表达式示例有什么问题?
解决方案
Powershell 正则表达式默认不区分大小写。而不是使用-match
use -cmatch
:
"orange22" -cmatch "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*"
推荐阅读
- abap - 具有列之间比较的 OpenSQL
- android - ClassNotFoundException: android.view.View$OnUnhandledKeyEventListener
- python - python冒险游戏的时间系统
- join - 可以在单程中为内存结构构建 FULL JOIN(不使用 sql!)
- three.js - Three.js中的多遍累积渲染
- r - R中的包装函数
- c++ - “uFlags &= ~CHN_PANNING”命令有什么作用?
- angular - 安装时角度/cli给我错误
- javascript - 单击 popup.html 上的按钮时运行 background.js 文件的简单方法
- jenkins - Jenkinsfile:前一个(仍在运行)阶段的卷曲日志