(33)C#正则表达式
正则表达式:专门用于字符串处理的语言,用来描述字符串特征的表达式
元字符
.
之间可以出现任意单个字符(除了\n 换行)
例如: a.b 意思是这个表达式必须是三个字符,第一个字符是a,第三个字符是b,中间是任意一个字符(中间字符也可以是空格)
[]
字符的筛选
例如: a[fgh]b 意思是这个表达式必须是三个字符,第一个字符是a,第三个字符是b,中间字符必须是f g h 中的一个字符
例如 a[0-9]b 第二个字符可以是 0到9之间的任意一个字符
例如 a[0-9a-zA-Z]b 第二个字符可以是 0到9或者a到z或者A-Z之间的任意一个字符
例如 a[^0-9a-z]b 第二个字符可以是除了0-9 a-z 以外的任意一个字符
|
表示或的意思
例如: z|food 意思是 这个表达式是z 或者 food (| 优先级最低)
例如:(z|f)ood 意思是 这个表达式是zood 或者 food
()
改变优先级,提取组
*
限定符,表示 * 前一个字符可以出现零次或者多次
例如: af*b 表示 f 可以不出现(ab)或者出现多次(afffffffb)
例如: a.*b 表示 ab间可以出现任何数字(asdgdffsgb)
+
限定符,表示 *号前一个字符至少出现一次
例如: a.+b 表示ab之间至少要出现一个字符(adfgsdfhsdfhb)
例如:a[0-9]b 表示 ab间至少有一个0-9的数字并且这个数字可以出现任意次(a0000b)
?
限定符,表示?前一个字符必须出现零次或者一次
例如: a.?b 这个字符串必须是ab 或者 a.b
?
另一个作用:终止贪婪模式。 正则表达式默认是贪婪模式
{}
两种
1、{n} 之前的一个字符必须出现n次
例如 a[0-9]{5}b ab间的存在5个相同字符并且这5个字符必须是0到9之前的一个数 (a88888b)
2、{n,m} 之前的一个字符最少出现n次,最多出现m次
例如 a[0-9]{5,7}b lue
3、{n,} 表示之前的一个字符至少出现n次,没有上限
^
必须是 xxx开头
例如 ^ab 表达式必须是ab开头 (ab454gag)
$
必须是 xxx结束
例如 xyz$ 表达式末尾必须是xyz(dhdfshxyz)
简写表达式
\d 等价于[0-9] 英文单词 digital(数字)
\D等价于[^0-9]
\s 表示所有不可见空白符 (包括中英文空格、回车、tab等)
例如: a\s*b 表示ab之间可以有任意空白或者只是ab两个字符
\S(大写) 表示除了\s(小写) 以外的所有字符
\w 匹配字母或数字或下划线或汉字 。 除了%&#@!$
\W
\b 单机的边界
@
如果一个字符串里出现带\的正则(如:\d)就需要在字符串前加个@,目的是让告诉.net编译器这个字符串里的\不是转义用的。
Regex 类
表示不可变的正则表达式。
using System.Text.RegularExpressions;
构造函数
Regex() 初始化 Regex 类的新实例
Regex(String) 新实例初始化 Regex 为指定的正则表达式类(传一个正则表达式进来)
还有三个暂时不用
方法
Regex.Match(string) 传一个字符串进去 (返回一个Match对象)
Regex.Match(string,string)第一个穿需要判断的字符串,第二个传正则表达式(返回一个Match对象)
Regex.IsMatch(string,string) 返回一个布尔值用来判断是否匹配成功
string p = "a.b";
string str="addb";
if (Regex.IsMatch(str, p))
{
Console.WriteLine("匹配成功"); }
else
{
Console.WriteLine("匹配不成功");
}
Console.ReadKey();
}
Match 类
表示单个正则表达式匹配的结果
using System.Text.RegularExpressions;
属性
Length 获得字符串长度
string p = "a.b";
string str="adb";
Match match = Regex.Match(str, p);
int a = match.Length;
Console.WriteLine(a);
Success 判断是否匹配成功
string p = "a.b";
string str="addb";
Match match = Regex.Match(str, p);
if (match.Success)
{
Console.WriteLine("匹配成功"); }
else
{
Console.WriteLine("匹配不成功");
}
Console.ReadKey();
Value 获得字符串的值
string p = "a.b";
string str="adb";
Match match = Regex.Match(str, p);
string a = match.Value;
Console.WriteLine(a);
(33)C#正则表达式的更多相关文章
- php电话号码正则表达式常用例子
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) 02 03 ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{ ...
- 最强 Android Studio 使用小技巧和快捷键
写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...
- AS技巧合集「编码技巧篇」
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254725&extra=page%3D2%26filter%3Dautho ...
- 62个Android Studio小技巧合集
1书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除书签 ...
- Android Studio 小技巧合集
本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62 ...
- 最强 Android Studio 使用小技巧和快捷键总结
最强 Android Studio 使用小技巧和快捷键总结 写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android ...
- 转:Andriod studio技巧合集
1. 书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除 ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- .net使用正则表达式校验、匹配字符工具类
开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...
随机推荐
- 利用socket.io构建一个聊天室
利用socket.io来构建一个聊天室,输入自己的id和消息,所有的访问用户都可以看到,类似于群聊. socket.io 这里只用来做一个简单的聊天室,官网也有例子,很容易就做出来了.其实主要用的东西 ...
- 利用Xtrabackup搭建GTID主从复制(一主一从)
Preface I've been demonstrated how to implement a master-slave structure using mysqldump in ...
- Python 协程与事件循环
Table of Contents 前言 协程 async & await 事件循环 asyncio 的事件循环 结语 参考链接 前言 Python 标准库 asyncio 是我目前接触过的最 ...
- 设计模式之模板方法模式 templateMethod
代码实现 public abstract class BankTemplateMethod { //具体方法 public void takeNumber(){ System.out.println( ...
- hadoop-hdfs(三)
HDFS概念 1 数据块* HDFS的一个数据块默认是64M,与元数据分开管理. 优点: 数据块的大小设计的较大,所以寻址占传输的时间比例较小,只需要计算传输速度即可. 便于简化管理,利于计算剩余空间 ...
- Win10 WSL Ubuntu18.04 编译安装MySQL5.7
---恢复内容开始--- 在win10 商店中选择 ubuntu18.04 下载地址 http://dev.mysql.com/downloads/mysql/ wget https://cdn.my ...
- Spring框架jar包分类(转)
转自:http://www.cnblogs.com/JSONBEAN/p/6364038.html 长期以来都在写SSM框架的项目,却未能深入理解框架的搭建原理,而只是浅薄的理解前辈的架构,然后不断套 ...
- 研华 FWA-3231 单路E3平台
研华 FWA-3231 单路E3平台 服务器主板上芯片组与处理器的适配参考
- BZOJ1180 [CROATIAN2009]OTOCI 【LCT】
题目 给出n个结点以及每个点初始时对应的权值wi.起始时点与点之间没有连边.有3类操作: 1.bridge A B:询问结点A与结点B是否连通.如果是则输出"no".否则输出&qu ...
- swf自动播放时如何全屏全部显示
在QQ Show里面看到一个很可爱的挂件,很想把它弄下来.弄下来的方法很简单,直接去网页缓存文件里面找.找到了之后,按下面的方法插入到网页中: 1 <object height="10 ...