我搜索了SO和Google,我发现的大多数示例似乎没有按预期工作(或者没有将所有这些元素组合在一起).我正在尝试创建一个匹配(传递)的Regex表达式,如果一个字符串在字符串中的任何位置包含至少一个以下内容,并且如果它缺少任何一个则失败:
这就是我尝试过的:
if (System.Text.RegularExpressions.Regex.IsMatch(txtTest.Text.Trim(), "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?^[a-zA-Z0-9_@.-]).{8,}$"))
{
lblMsg.Text = "Pass";
}
else
{
lblMsg.Text = "Fail";
}
Run Code Online (Sandbox Code Playgroud)
问题是这不符合预期.以下通行证应该失败(他们没有特殊字符):
它似乎可以很好地检测所有特殊字符.我做错了什么,我该如何解决?
Sab*_*san 13
改变(?=.*?^[a-zA-Z0-9_@.-])如下:
+ see here
(?=.*?[^a-zA-Z0-9_@.-])
^^ i kept the dot, hyphen, etc as you used, if you don't need, remove.
Run Code Online (Sandbox Code Playgroud)
在这个正则表达式中,^字符类的内部[]是否定字符.你几乎就在那里,不幸的是你把它放在了外面[]
| 归档时间: |
|
| 查看次数: |
3906 次 |
| 最近记录: |