正则表达式

1、什么是正则表达式

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
1,检索:通过正则表达式,从字符串中获取我们想要的部分
2,匹配:判断给定的字符串是否符合正则表达式的过滤逻辑
可以用来判断用户输入的密码是否合法,判断用户输入的邮箱格式是否合法

2、正则表达式的语法

正则表达式就是由普通字符以及特殊字符(成为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。
定位元字符
我们经常在正则表达式字符串前面加上@字符,这样不让编译器去解析其中的转义字符,而作为正则表达式的语法(元字符)存在。
@

Console.WriteLine(@"\n\t\n");//输出字符串\n\t\n

\b 匹配单词的开始或结束
\B 匹配非单词的开始或结束
^ 匹配必须出现在字符串的开头或行的开头
$ 匹配必须出现在以下位置:字符串结尾、字符串结尾处的 \n 之前或行的结尾。
\A 指定匹配必须出现在字符串的开头(忽略 Multiline 选项)。
\z 指定匹配必须出现在字符串的结尾(忽略 Multiline 选项)。
\z 指定匹配必须出现在字符串的结尾或字符串结尾处的 \n 之前(忽略 Multiline选项)。
\G 指定匹配必须出现在上一个匹配结束的地方。与 Match.NextMatch() 一起使用时,此断言确保所有匹配都是连续的。
基本语法元字符

. 匹配除换行符以外的任意字符
\w 匹配字母、数字、下划线、汉字 (指大小写字母、0-9的数字、下划线_)
\W \w的补集 ( 除“大小写字母、0-9的数字、下划线_”之外)
\s 匹配任意空白符 (包括换行符/n、回车符/r、制表符/t、垂直制表符/v、换页符/f)
\S \s的补集 (除\s定义的字符之外)
\d 匹配数字 (0-9数字)
\D 表示\d的补集 (除0-9数字之外)
反义字符

\W \w的补集 ( 除“大小写字母、0-9的数字、下划线_”之外)
\S \s的补集 (除\s定义的字符之外)
\D 表示\d的补集 (除0-9数字之外)
\B 匹配不是单词开头或结束的位置
[ab] 匹配中括号中的字符
[a-c] a字符到c字符之间是字符
[^x] 匹配除了x以外的任意字符
[^adwz] 匹配除了adwz这几个字符以外的任意字符
重复描述字符

{n} 匹配前面的字符n次
{n,} 匹配前面的字符n次或多于n次
{n,m} 匹配前面的字符n到m次
? 重复零次或一次
+重复一次或更多次
*重复零次或更多次

3、示例

String s1 = "12336fd";
String s2 = "123456";
String s3 = "property";
String s4 = "person";
String s5 = "45p!er156_";
String s6 = "program";


Console.WriteLine(Regex.IsMatch(s1, ""));
Console.WriteLine(Regex.IsMatch(s2, @"\d*"));//匹配0个或多个数字
Console.WriteLine(@"\n\t\n");
Console.WriteLine(Regex.IsMatch(s3, @"pr*"));//p,pr,prr,prrr等
Console.WriteLine(Regex.IsMatch(s3, @"^p"));//以p开头
Console.WriteLine(Regex.IsMatch(s4, @"^b"));
Console.WriteLine(Regex.IsMatch(s4, @"n$"));//以n结尾
Console.WriteLine(Regex.IsMatch(s5, @"\w"));//匹配字母数字下划线
Console.WriteLine(Regex.IsMatch(s5, @"\W"));//匹配\w的补集



Console.WriteLine(Regex.IsMatch("a00", @"[acb]"));//acb其中的一个字母
Console.WriteLine(Regex.IsMatch("102", @"[^2-9]"));//除2到9的所有数字
Console.WriteLine(Regex.Replace(s6, @"[a-z]","*"));//替换为*******
Console.WriteLine(Regex.IsMatch("123", @"\d{1,5}"));//匹配1个到5个数字
Console.WriteLine(Regex.IsMatch("12345", @"\d{5}"));//匹配5个数字
Console.WriteLine(Regex.IsMatch("23", @"\d|a"));//匹配任意1个数字或a
Console.WriteLine(Regex.IsMatch("aa", @"a{2}"));//匹配2个a
Console.WriteLine(Regex.IsMatch("abab", @"(ab){2}"));//匹配2个ab
Console.WriteLine(Regex.IsMatch("(", @"\("));//匹配(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值