gpt4 book ai didi

c# - 检查字符串是否至少包含每个 : lowercase letter, 大写字母、数字和特殊字符之一

转载 作者:行者123 更新时间:2023-11-30 19:01:41 26 4
gpt4 key购买 nike

我已经搜索过 SO 和 Google,我发现的大多数示例似乎都没有按预期工作(或者没有结合所有这些元素)。我正在尝试创建一个 Regex 表达式,如果字符串包含 至少 字符串中的以下 anywhere 之一,则匹配(通过),如果缺少任何一个,则失败他们:

  • 长度至少为 8 个字符
  • 大写字符
  • 小写字符
  • 人数
  • 特殊字符(包括句点、下划线等,即白名单方法不可取 - 允许任何非字母数字字符)

这是我试过的:

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";
}

问题是这没有按预期工作。以下在它们应该失败通过(它们没有特殊字符):

  • 123牛仔
  • MonkeyCow123

它似乎可以很好地检测除特殊字符以外的所有字符。我做错了什么,我该如何解决?

最佳答案

(?=.*?^[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.

在这个正则表达式中,字符类 [] 中的 ^ 否定字符。你快到了,只是不幸的是你把它放在了 []

之外

关于c# - 检查字符串是否至少包含每个 : lowercase letter, 大写字母、数字和特殊字符之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23114797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com