首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#正则表达式任何人都能解决

C#正则表达式任何人都能解决
EN

Stack Overflow用户
提问于 2018-07-08 08:04:31
回答 1查看 81关注 0票数 0
  1. 至少有一个小写字母,
  2. 至少有一个大写字母,
  3. 至少有特殊的性格,
  4. 至少有一个数字
  5. 至少8个字符的长度

问题是在regx模式中的"/d“显示错误。

代码语言:javascript
复制
private void txtpassword_Leave(object sender, EventArgs e) {
    Regex pattern = new Regex("/^(?=.*[a-z])(?=.*[A-Z])(?=.*/d)(?=.*[#$@!%&*?])[A-Za-z/d#$@!%&*?]{10,12}$/");
    if (pattern.IsMatch(txtpassword.Text)) {
        MessageBox.Show("valid");
    } else {
        MessageBox.Show("Invalid");
        txtpassword.Focus();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-07-08 09:07:29

在regex中,反斜杠用于逃逸。所以,它应该是\d,而不是/d。

但你也可以用0-9代替。

代码语言:javascript
复制
^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9\s])\S{8,}$

此外,在字符串中使用反斜杠时。

然后要么双反斜杠。或者使用逐字字符串。F.e.@"foobar“

this SO post中会有更多关于这个问题的报道。

示例C#代码:

代码语言:javascript
复制
string[] strings = { "Foo!bar0", "foobar", "Foo bar 0!", "Foo!0" };

Regex rgx = new Regex(@"^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9\s])\S{8,}$");

foreach (var str in strings){
    Console.WriteLine("[{0}] {1} valid.", str, rgx.IsMatch(str) ? "is" : "is not");
}

返回:

代码语言:javascript
复制
[Foo!bar0] is valid.
[foobar] is not valid.
[Foo bar 0!] is not valid.
[Foo!0] is not valid.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51229981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档