首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >regex101.com中的Regex在mz c#代码中不工作。

regex101.com中的Regex在mz c#代码中不工作。
EN

Stack Overflow用户
提问于 2020-03-23 15:08:02
回答 1查看 69关注 0票数 1

为什么regex101.com上的regex在C#代码中并不完全相同?例如,我想验证一个必须包含以下内容的密码:

  • 至少有一个大写字母
  • 至少有一个较低的情况
  • 至少有一个数字
  • 至少有一个特殊角色
  • 至少长度应为8个字符或更长。

我使用的正则表达式是:((?=.*\d)(?=.*[A-Z])(?=.*\W).{8,50000})

它可以在网站上运行。

这是示例

但是,当我将它传输到C#代码时,当我输入正确的值(例如,Testable.345 )时,它会显示一条验证消息(它不会通过)。下面是我的C#中的代码:

代码语言:javascript
代码运行次数:0
运行
复制
 class Program
    {
        static void Main(string[] args)
        {

            string input = Startup();
            GetMatched(input);
        }

        private static string Startup()
        {
            Console.WriteLine("Please enter string for regex match: ");
            string input = Console.ReadLine();
            return input;
        }

        private static void GetMatched(string input)
        {
            if (!string.IsNullOrWhiteSpace(input))
            {
                const string digitsRegex = "((?=.*\\d)(?=.*[A - Z])(?=.*\\W).{ 8,50000})";

                Regex regex = new Regex(digitsRegex, RegexOptions.CultureInvariant);
                string fieldData = input.ToString().Replace(" ", "");


                if (regex.IsMatch(fieldData))
                {
                    Console.WriteLine("Success!");
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("Failed!");
                    Console.ReadLine();
                    Startup();
                }
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-23 15:16:39

/**要求:(必须至少包含每个条件中的一个):小写字母字符,大写字母字符,数字字符,非字母数字字符,最小字符串长度为8 **/。

(?=^.a-z{1}.$)(?=^.A-Z{1}.$)(?=^.0-9{1}.$)(?=^.^0-9a-zA-Z{1}.$)(?=.{8})

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60816202

复制
相关文章

相似问题

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