(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 ...
随机推荐
- ARC下,不显式指定任何属性关键字时,默认的关键字都有哪些
1.对应基本数据类型默认关键字是 atomic,readwrite,assign 2.对于普通的 Objective-C 对象 atomic,readwrite,strong
- Windows环境下,python webdriver环境搭建
最近刚开始学习selenium,这是我从虫师的<selenium2自动测试实战--基于Python语言>这本书上学到搭建环境的步骤,里面有加上我的一些总结,希望对大家有所帮助! 准备工 ...
- 3D U-Net卷积神经网络
3D U-Net这篇论文的诞生主要是为了处理一些块状图(volumetric images),基本的原理跟U-Net其实并无大差,因为3D U-Net就是用3D卷积操作替换了2D的,不过在这篇博文中我 ...
- jquery实现京东淘宝首页的轮番效果图
主要是绑定事件以及实现自动滚轮 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- JSP/Servlet Web 学习笔记 DayThree —— 实现一个登陆小界面
项目说明 利用JSP.HTML.JS实现了一个简易的登陆系统.根据前两天的所学,实现了如下功能: a)用户名.密码验证(不基于数据库,只做一个简单的表单数据获取并验证) b)页面访问次数统计 c)验证 ...
- J2EE的十三种技术——JDBC
背景: 之前准备软考的时候,我们就学习过J2SE的视频.在进入J2EE之前,一定要复习和回顾下Java的基础知识,这对以后的学习十分重要.首先,简单回忆下java的体系结构.Java有三个体系结构:J ...
- luajit的字节码
http://blog.csdn.net/zzz3265/article/details/41146569 这里写出了luajit的字节码
- ConfigurationManager.ConnectionStrings 类库 取不到值 报错 初始化错误
是因为我把 config 文件写在了 类库中,(擦,很久之前就处理过好多次,总是忘记 写个文章记录下来) 其实应该放在 主目录底下的 web.comfig 里 就是网站项目的 配置文件里,类库找的 是 ...
- 【距离GDOI:131天】 后缀数组完毕
用了近两周的时间,终于把罗神那篇后缀数组应用看完了,题目也写了一遍,T了无数次...详见前几篇博文... 后缀数组很重要的是那个height数组,可以用来做各种奇奇怪怪的东西...常用方法去是去二分, ...
- [HNOI2015][bzoj4009] 接水果 [整体二分+扫描线]
题面 传送门 思路 本题其实有在线做法......但是太难写了,退而求其次写了离线 基本思路就是,考虑一个盘子以及它能接到的所有水果 可以发现,这个水果的端点一定在这个盘子两端的"子树&qu ...