【C#拾遗】——正则表达式RegEx

前端之家收集整理的这篇文章主要介绍了【C#拾遗】——正则表达式RegEx前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前提

公司内部推行安全制度,要求密码必须是八位以上,而且必有至少包含一个小写或者大写字母,数字,特殊字符,面对这样的密码,感觉领导也是够操心的了啊。在公司小编真是闲啊,所以动手实现了一下,后来看了人家的代码,发现自己太low了。

我就不说那很low的做法了,使用了C#中正则表达式Regex直接进行验证。直接看代码

using System.Text.RegularExpressions;
 string s =
@"
(?=.*[0-9])                         #必须包含数字
(?=.*[a-zA-Z])                      #必须包含小写或大写字母
(?=([\x21-\x7e]+)[^a-zA-Z0-9])      #必须包含特殊符号
.{8,30}                             #至少8个字符,最多30个字符
";
 Regex reg = new Regex(s,RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
            if (!reg.IsMatch(textBox1.Text.Trim()))
            {
                MessageBox.Show("密码必须包含8个字符,\r\n并且至少有1个大写字母、\r\n1个小写字母、\r\n1个数字、\r\n1个特殊字符!");
                textBox1.Focus();
                return;
            }

使用C#中的正则表达式,一个输入格式,两行校验代码,就这么简单的解决了这个问题。既然提到了正则表达式,那就好好的学习一下吧。


在C#中使用引入正则表达式

using System.Text.RegularExpressions;
之后就是关于正则表达式使用的一些基本语法了。


判断是否匹配


在Regex对象中,可以使用Regex.IsMatch(string)方法

如果返回值为false,字符串中未包含要求匹配的内容,默认值为true,则证明字符串中包含,符合条件。


关于匹配的问题还会涉及到Matches集合,再利用Matches集合进行获取匹配次数获取匹配内容,以及捕获正则表达式中的内容

Regex.Matches("abc123Count").count;

RegexOptions方法,指的的枚举,其中枚举的有效值有很多,具体的内容推荐一篇博客《C#正则表达式Regex类的用法》在这主要讲解两个,因为这段代码中用到的啊。


1、IgnorePatternWhitespace表示去掉模式中的非转义空白,并启用由#标记的注释,这个注意到我们的代码中是有#标识的注释的。

2、Multiline表示多行模式,改变元字符^和$的含义,它们可以匹配行的开头和结尾,在C#中^和$是有特殊意义的,所以要考虑全面啊。


这是C#中正则表达式非常基础的应用,其实之前在JavaScript中也学习过着这些内容,但是仅仅是学习过而已。大家都知道语言是相通,可是就是没有学过真正的让语言变得灵活起来,还是需要慢慢学习啊。


【总结】


关于C#中的学习真是学无止境,自己会的太少了,还是慢慢积累吧,把语言灵活运用起来,这才是目标啊。

原文链接:https://www.f2er.com/regex/358669.html

猜你在找的正则表达式相关文章