(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 ...
随机推荐
- MySQL Group Replication数据安全性保障
本文来自数据库内核专栏 在之前的文章中,介绍了MGR对数据可靠性.可用性和一致性的实现方案.简单来说,MGR通过基于paxos协议的多副本来实现数据的可靠性,通过多副本上的majority机制来实现可 ...
- ASP.NET Core ---异常处理
一.局部异常处理: 在Action里面catch 二.全局异常处理: 1.默认的异常处理配置: 默认配置在StartUp文件的Configure中注册错误处理,显示开发者错误页面: public vo ...
- kubeadm部署k8s1.9高可用集群--4部署master节点
部署master节点 kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 本文档介绍部署一 ...
- 操作App.config的类(转载)
http://www.cnblogs.com/yaojiji/archive/2007/12/17/1003191.html 操作App.config的类 public class DoConfig ...
- PEAR DB 事务相关
1.autoCommit().commit().rollback() function autoCommit($onoff=false) 指定是否自动提交事务.有的后端数据库不支持. function ...
- ZOJ 3606 Lazy Salesgirl ( 线段树 + 思路 )
卖切糕的小女孩 http://www.cnblogs.com/wuyiqi/archive/2012/04/28/2474672.html #include <cstdio> #inclu ...
- Problem 1036 四塔问题
Accept: 590 Submit: 1506Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description “汉诺 ...
- 启动Tomcat时的常见问题及解决办法
问题一:环境变量 1.检查jdk 验证jdk的配置,在运行-cmd中输入 java -version 即表示安装成功. 如果jdk没有问题,还需要配置两个环境变量.找到jdk和jre的路径,配置JAV ...
- P2507 [SCOI2008]配对
题目背景 四川NOI2008省选 题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值之和尽量小,但不允许两个相同的数配对. ...
- HDU 5790 Prefix(字典树+主席树)
Prefix Time Limit: 2000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...