C#——正则表达式详情

正则表达式

正则表达式: 列如判断一个字符串是不是手机号,或者密码是否包含大小写数字等这些要求,可以把这些条件写成一个表达式

创建正则表达式

cs 复制代码
string s1 = "1234adsab1KHGFJD";
// 创建正则时需要在字符串前面加上@
Regex r = new Regex(@"a"); // 匹配的是字符a
// 可以使用正则表达式的replace方法 进行替换
// 参数1 目标字符串 参数2 要替换成的字符串
Console.WriteLine(reg1.Replace(s1, "1")); // 把a替换成1

2 创建匹配字符a和b 并且a和b必须是相邻的正则

cs 复制代码
Regex reg2 = new Regex(@"ab");
Console.WriteLine(reg2.Replace(s1, "*"));

1. @"[]" 匹配括号其中的一个

cs 复制代码
Regex rr = new Regex(@"[1j]");// 匹配1和j

[a-d] 从a到d之间所有的字符

cs 复制代码
Regex rr = new Regex(@"[a-d]");

2.@"b{m}" 表示字符串必须出现m次

cs 复制代码
Regex r = new Regex(@"b{2}"); // 匹配bb
r = new Regex(@"[ab]{2}"); // 匹配 a或者b连续出现2次

贪婪模式

@"2{m, }" 表示前一个值表达式必须出现至少m次 最多不限制
cs 复制代码
string s = "1 12 123 1234 12345 123456";

r = new Regex(@"\d{3,}"); // 匹配最少出现3次数字
@"2{m,n}" 表示前一个值表达式必须出现至少m次 最多到n次
cs 复制代码
s = "1 12 123 1234 12345 123456";
r = new Regex(@"\d{3,5}");
3. ?匹配前一个表达式最少出现0次,最多出现1次
cs 复制代码
s = "a1caaaac";r = new Regex(@"a?c");
4. * 前一个字表达式至少出现0次 最多不限制 相当于{0,}
cs 复制代码
s = a1caaaac";
r = new Regex(@"a*c"); // a出现0次或者是多次都可以,要么c的前面有0个a或者多个a
5.+ 前一个字表达式至少出现1次 最多不限制 相当于{1,}
cs 复制代码
s = "a1caaaac";

r = new Regex(@"a+c");// a最少出现1次,c的前面最少有一个a

Regex 类

Regex 类用于使用一个正则表达式,下表中列出了 Regex 类中一些常用的方法:

定位符

定位符可以根据字符串出现的具体位置来判断匹配是成功还是失败,下表中列举了常用的定位符:

转义字符

正则表达式中的反斜杠`\`用来表示它后面跟随的字符是特殊字符,具有特殊的含义。下表列举了一些常用的转义字符:

2) 字符类

字符类可以与一个字符串中的任何一个字符相匹配,下表中列举了一些常用的字符类:

5) 限定符

限定符用来指定在字符串中必须存在某个元素(可以是字符、组或字符类)才能匹配成功。下表列出了常用的限定符:

相关推荐
网域小星球2 分钟前
C 语言从 0 入门(二十五)|位运算与位段:底层开发、嵌入式核心
c语言·开发语言
Gofarlic_OMS12 分钟前
ENOVIA基于Token的许可证消费模式分析与分点策略
java·大数据·开发语言·人工智能·制造
XY_墨莲伊17 分钟前
【实战项目】基于B/S结构Flask+Folium技术的出租车轨迹可视化分析系统(文末含完整源代码)
开发语言·后端·python·算法·机器学习·flask
沐知全栈开发24 分钟前
XML Schema 复合类型 - 混合内容
开发语言
Fleshy数模26 分钟前
PyQt5 登录界面开发全流程:从环境配置到可视化设计
开发语言·python·qt
bingd0127 分钟前
慕课网、CSDN、菜鸟教程…2026 国内编程学习平台实测对比
java·开发语言·人工智能·python·学习
Hello--_--World28 分钟前
Js 隐式类型转换、JavaScript `==` vs `===` 深度对比表
开发语言·javascript·ecmascript
liulilittle41 分钟前
opencode 循环继续插件 /ralph-loop
开发语言
坐吃山猪42 分钟前
Python29_并发编程
开发语言·网络·python·并发
阿凤211 小时前
后端返回文件二进制流
开发语言·前端·javascript·uniapp