
正则表达式的主要功效是验证字符串的值是否满足一定的规则,在网页输入数据验证方面的使用比较多。
例如验证输入的邮件是否非法、输入的号码是否非法、输入的用户名是否满足条件等。
正则表达式并不是 C# 语言独有的,在大多数的编程语言中都是支持的,包含一些脚本语言也支持,例如 JavaScript、JQucry 等。
正则表达式是专门处理字符串操作的,其自身有固定的句式。
正则表达式的字符主要分为元字符和指出重复的符号,分别如下表所示。
正则表达式中的元字符编号字符描述
匹配除换行符以外的一切符号
匹配字母、数字、下画线
匹配空白符(括号)
匹配数字
匹配表达式的开始或结束
匹配表达式的直到
匹配表达式的结束
正则表达式中认为重复的符号编 号字 符描 述
0次或多次字符
0次或1次字符

1次或多次字符
{n}
n次字符
{n,M}
n到M次字符
{n, }
n次以上字符
另外,在正则表达式中使用|分隔符表示多个正则表达式之间的如果关系,也就是在匹配某一个字符串时满足其中一个正则表达式即可。
例如使用正则表达式来验证信息,第一代是由 15 个数字构成的,第二代是由 18 个数字构成的,正则表达式可以写出 \d{15}|\d{18}。
在 C# 语言中使用正则表达式时要用到 Regex 类,该类在 System.Text.RegularExpressions 名称空间中。
在 Regex 类中使用 IsMatch 方法分析所匹配的字符串是否满足正则表达式的要求。
【示例】在 Main 方法中从控制台输入一个邮箱,使用正则表达式分析其正确性。
按照短文要求,在本例中邮件验证的正则表达式的句式是包括 @,在 @ 前面是小写如果数字、下画线,在 @ 后面应该字母如果数字、下画线,所以字母中间要富含.c# 正则表达式,在 . 后面还要加上字母如果数字、下画线。具体的源码如下。
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个邮箱");
string email = Console.ReadLine();
Regex regex = new Regex(@"^(\w)+(\.\w)*@(\w)+((\.\w+)+)$");
if (regex.IsMatch(email))
{
Console.WriteLine("邮箱格式正确。");
}
else
{
Console.WriteLine("邮箱格式不正确。");
}
}
}执行下面的源码,作用如下图所示。

邮件的正则表达式也是多种写法,下面的句式只是其中的一种,例如将案例中的\w替换成[a-zA-Z-9_]。

另外,在 Regex 类中还提供了好多办法来操作正则表达式
符号描述
转义字符,将一个具有独特系统的符号转义为一个普通符号,或反过来
(pattern)
匹配 pattern 并获取这一匹配
(?:pattern)
匹配 pattern 但不获取匹配结果
(?=pattern)
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串
(?!pattern)
负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串
x|y
匹配x或y。例如,‘z|food’能匹配“z”或“food”。‘(z|f)ood’则匹配“zood”或“food”
[xyz]
符号集合。匹配所包括的任意一个字符。例如,‘[abc]’可以匹配“plain”中的‘a’
[^xyz]

负值字符集合。匹配未包括的任意字符。例如,‘[^abc]’可以匹配“plain”中的‘p’
[a-z]
匹配指定范围内的任意字符。例如,‘[a-z]’可以匹配'a'到'z'范围内的任意小写字母字符
[^a-z]
匹配不在指定范围内的任意字符。例如c# 正则表达式,‘[^a-z]’可以匹配不在‘a’~‘z’'内的任意字符
匹配非英语边界
匹配一个非数字字符,等价于 [^-9]
匹配一个换页符
匹配一个换行符
匹配一个回车符
匹配任何非空白符号
匹配一个制表符
匹配一个垂直制表符。等价于 \xb 和 \cK
匹配任何非英语字符。等价于‘[^A-Za-z-9_]’
除了邮件的正则表达式以外,还有一些常见的正则表达式,如下表所示。
编号正则表达式效果

\d{15}|\d{18}
验证号码(15位或18位)
\d{3}-\d{8}|\d{4}-\d{7}
验证国内的固定电话(区号有3位或4位,并在区号和电话号码之 间加上-)
^[1-9]\d*$
验证字符串中都是正小数
^-[1-9]\d*$
验证字符串中都是负整数
^-?[1-9]\d*$
验证字符串中是小数
^[A-Za-z]+$
验证字符串中全是小写
A[A-Za-z-9]+$
验证字符串由数字和小写构成
[\u4e00-\u9fa5]
匹配字符串中的英文
[^\x00-\xff]
匹配字符串中的双字符字符(包含汉字)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-119065-1.html
要坚决应对美国佬的无耻挑衅行为
此后看美企MOTO也濒临破产