【C#】初学正则表达式笔记

正则表达式

英文Regular Expression,是计算机科学的一个重要概念,她使用一种数学算法来解决计算机程序中的文本检索,匹配等问题,正则表达式语言是一种专门用于字符串处理的语言。在很多语言中都提供了对它的支持,c#也不例外

两个功能:

检索:从字符串中获取想要的部分

匹配:判断字符串是否符合正则表达式的的过滤逻辑

 

常用的用法:可以判断用户输入的密码或邮箱格式是否合法等

 

正则表达式就是有普通字符以及特殊字符组成 的文字模式。特殊字符即是元字符

 

\ 转义字符,如果要表示\ 则用\\

@符号,在正则表达式前面添加@字符,这样表示不让编译器去解析其中的转义字符,而作为正则表达式的语法存在

 

定位符

^ 匹配字符串的开始位置

$ 匹配字符串的结束位置

\b 匹配一个单词的边界

\B 匹配非单词边界

 

例子:匹配开始和结束

string str = "World";
//匹配开始的位置,替换成指定字符串
string res = Regex.Replace(str, "^", "Hello ");//输出Hello World
//匹配结束的位置,替换成指定字符串
string res2 = Regex.Replace(str, "$", "!");//输出World!

 

 

.    匹配除换行符以外的任意字符

\w    匹配字母、数字、下划线、汉字    (指大小写字母、0-9的数字、下划线_)

\W    \w的补集    ( 除“大小写字母、0-9的数字、下划线_”之外)

\s    匹配任意空白符    (包括换行符/n、回车符/r、制表符/t、垂直制表符/v、换页符/f)

\S    \s的补集    (除\s定义的字符之外)

\d    匹配数字    (0-9数字)

\D    表示\d的补集    (除0-9数字之外)

 

例子:只允许输入数字

Regex.IsMatch(input, @"^\d*$");

 

[abc] 表示匹配a,或匹配b,或匹配c

[a-c] 表示匹配a到c之间的字符

[^x] 表示匹配除了x以外的字符

 

例子:代替除了ace之外的任意字符为*

string str = "abcdef";
string pattern = @"[^ace]";//代表一个字符,除了ace之外的任意字符
string res = Regex.Replace(str, pattern, "*");//代替除了ace之外的任意字符为*

//结果为 a*c*e*

 

限定符

* 表示出现0个或多次

+ 表示出现1次或多次

? 表示出现0次或1次

{n} 表示出现n次,n表示一个非负整数

{n,} 表示至少出现n次

{n,m} 表示出现n次到m次

 

例子:验证输入的是否为合法的QQ号(备注:QQ号为5-12位数字)

string qq1 = "123", qq2 = "397458006",qq3="abc123456";
string pattern = @"^\d{5,12}$";

bool isMatch1 = Regex.IsMatch(qq1, pattern);//false
bool isMatch2 = Regex.IsMatch(qq2, pattern);//true
bool isMatch3 = Regex.IsMatch(qq3, pattern);//false

 

择一匹配

| 字符,将两个匹配条件进行逻辑或运算

 

例子:查找数字或字母

string str = "123哈哈abc啊啊";
string pattern = @"\d|[a-z]";
MatchCollection col =  Regex.Matches(str, pattern);

foreach (Match match in col)
{
    Console.WriteLine(match);
}

结果为

 

分组 

使用小括号()

 

例子:单个字符重复两次替换为**

string str = "aabbaaacccaaaa";
string pattern = @"a{2}";
string res = Regex.Replace(str, pattern, "**");

//结果为 **bb**accc****

例子:校验IP4地址

  string pattern = @"^(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))$";

 

 

相关链接:

学习正则表达式

常用正则表达式

 

相关推荐
<div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;">当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 6300 多个 star,</span><span style="color:#4d4d4d;">本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。<br /> 商城项目所涉及的功能结构图整理如下:<br /> </span> </div> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> <img alt="modules" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3N0b3JlL25ld2JlZS1tYWxsLXMucG5n?x-oss-process=image/format,png" /> </p> </div> <p style="color:rgba(0,0,0,.75);"> <strong><span style="color:#e53333;">课程特色</span></strong> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目 </li> <li> 最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择 </li> <li> 实践项目页面美观且实用,交互效果完美 </li> <li> 教程详细开发教程详细完整、文档资源齐全 </li> <li> 代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜 </li> <li> 技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 </li> </ul> </div> <p style="color:rgba(0,0,0,.75);">   </p> <p style="color:rgba(0,0,0,.75);"> <span style="color:#e53333;">课程预览</span> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> 以下为商城项目的页面和功能展示,分别为: </p> </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 商城首页 1<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050347585499.gif" /> </li> <li> 商城首页 2<br /> <img alt="" src="https://img-bss.csdn.net/202005181054413605.png" /> </li> <li>   </li> <li> 购物车<br /> <img alt="cart" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvY2FydC5wbmc?x-oss-process=image/format,png" /> </li> <li> 订单结算<br /> <img alt="settle" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvc2V0dGxlLnBuZw?x-oss-process=image/format,png" /> </li> <li> 订单列表<br /> <img alt="orders" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvb3JkZXJzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 支付页面<br /> <img alt="" src="https://img-bss.csdn.net/201909280301493716.jpg" /> </li> <li> 后台管理系统登录页<br /> <img alt="login" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWxvZ2luLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品管理<br /> <img alt="goods" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWdvb2RzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品编辑<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050348242799.png" /> </li> </ul> </div> </div> </div> </div>
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页