C#正则表达式验证
一、正则表达式的重要工具(RegexBuddy)
软件需要自己去官网下载安装
里面划分了三个不同的区域
选择正则语言环境
根据需要选择
正则条件区
筛选我们需要的内容条件
内容匹配区
被筛选的文本
因为我们用的是C#语言,所以语言环境就选择(C#(.NET 2.0-4.5))即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1UKeP5nh-1635686518151)(D:\大二课程学习(-8-11)\正则表达式\笔记\image\1、RegexBuddy.jpg)]
二、什么是正则表达式
正则表达式又称规则表达式,英文名为 Regular Expression
在代码中常用 regex\regexp或RE 来表示正则
正则表达式通常被用来检索、替换那些符合某个规则的文本内容
三、简单的正则表达式
列:gdsadasg6456456465dhasdh878
正则:\bgds
获取到以gds开头的文本,使用上面的软件就可以在匹配区域中高亮显示
\b 是正则表达式规定的一个特殊代码,称为 元字符
表示 单词的开头或结尾,也就是单词的分界处,只匹配一个位置
四、元字符的讲解
五、\ 转义字符
如果想要查早元字符的本身就需要用到转义字符
咧:
\ . \ * \ ,
注意:如果要查早 \ 本身也得使用转义 \\
六、通用的限定符
七、反义字符
八、替换
写一个正则表达式用于匹配几种格式的电话号码
例如:(010)88886666,或022-22334455,或02912345678
正则表达式:(0\d{2}[)]\d{8}|0\d{2}[- ]?\d{8}
注意:使用替换时,顺序是很重要的
主要是通过 | 来完成一个替换,也可以看做编程里面的 或
九、分组语法
例子:<img οnlοad=“AutoResizeImage(200,200,this)“src=”/Document/Title/Temp/-12-114bc5.png” >
请匹配出:οnlοad=“AutoResizeImage(200,200,this)”正则表达式:onload.+(?=src)
请匹配出:-12-114bc5.png正则表达式:(?<=Document/Title/Temp/).+(?=")
十、贪婪与懒惰
懒惰:
当正则表达式中包含能接受重复的限定符时,尽可能匹配多的字符,被称为 贪婪模式
懒惰:
有时我们更需要懒惰匹配,尽可能匹配少的字符
如果将前面给出的限定符转义为懒惰匹配模式,只需要在它后面加上一个问好
懒惰限定符
十一、关于C#中的正则使用
定义string类型的字符串
string str = "<img οnlοad=\"AutoResizeImage(200,200,this)\"src=\"/Document/Title/Temp/-12-114bc5.png\" >" +"<img οnlοad=\"AutoResizeImage(200,200,this)\"src=\"/Document/Title/Temp/-12-114bc5.png\" >" +"<img οnlοad=\"AutoResizeImage(200,200,this)\"src=\"/Document/Title/Temp/-12-114bc5.png\" >";
里面需要通过 \ 进行转义,不然会报错
实例化 Regex
Regex regex = new Regex("onload.+?(?=src)");
Regex(“写正则规则”)
IsMatch:指定的正则表达式在指定的输入字符串中是否找到了匹配项。
bool blRG = regex.IsMatch(匹配项);
Match:指定的正则表达式的第一个匹配项
Match match = regex.Match(str);string str1 = match.Value;
返回一个包含有关匹配的信息的对象。
value:返回结构通过匹配捕获的子字符串
MatchCollection表示通过以迭代方式将正则表达式模式
MatchCollection matchCol = regex.Matches(str);
应用于输入字符串所找到的成功匹配的集合
循环获取数据
for (int i = 0; i < matchCol.Count; i++)//通过循环获取每一个匹配对象{string value1 = matchCol[i].Value;}
Replace:替换与指定正则表达式匹配的所有字符串
string str2 = Regex.Replace(str, "onload.+?(?=src)", "~~~~");