正则表达式:专门用于字符串处理的语言,用来描述字符串特征的表达式

元字符

.

之间可以出现任意单个字符(除了\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#正则表达式的更多相关文章

  1. php电话号码正则表达式常用例子

    电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) 02   03 ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{ ...

  2. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  3. AS技巧合集「编码技巧篇」

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254725&extra=page%3D2%26filter%3Dautho ...

  4. 62个Android Studio小技巧合集

    1书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除书签 ...

  5. Android Studio 小技巧合集

    本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62 ...

  6. 最强 Android Studio 使用小技巧和快捷键总结

    最强 Android Studio 使用小技巧和快捷键总结   写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android ...

  7. 转:Andriod studio技巧合集

    1. 书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除 ...

  8. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  9. .net使用正则表达式校验、匹配字符工具类

    开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...

随机推荐

  1. gulp相关

    'use strict'; var gulp = require('gulp'), webserver = require('gulp-webserver'), //gulp服务器 connect = ...

  2. ADB连接手机遇到的问题:list of devices attached

    今天工作时想尝试一下使用ADB无线连接手机,结果遇到了下面这样的问题,浪费了几十分钟的时间,挺闹心的,因此想分享出来... 首先 第一步:使用USB数据线连接手机,手机弹出选项时,选择仅充电,然后wi ...

  3. 关于python中的 if __name__ == 'main'

    name 是内置变量,它表示的是当前所在模块的名字,同时还能反应一个包的结构. a ├── b │   ├── c.py │   └── __init__.py └── __init__.py 目录中 ...

  4. 小红帽安装centos的yum的一些坑!

    [root@localhost ~]# lsanaconda-ks.cfg yum-3.4.3-158.el7.centos.noarch.rpm yum-updateonboot-1.1.31-45 ...

  5. docker部署思路

    1.docker安装2.拉取centos镜像或者Ubuntu镜像 看你用哪个3.使用镜像,run出来一个容器A4.进入容器A,安装uwsgi,把Django部署在下面5.在启动脚本中配置开机自启动脚本 ...

  6. 孤荷凌寒自学python第二十五天初识python的time模块

    孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操 ...

  7. 【bzoj4822/bzoj1935】[Cqoi2017]老C的任务/[Shoi2007]Tree 园丁的烦恼 树状数组

    原文地址:http://www.cnblogs.com/GXZlegend/p/6825530.html bzoj4822 题目描述 老 C 是个程序员.     最近老 C 从老板那里接到了一个任务 ...

  8. Codeforces Round #386 (Div. 2) 746G(树的构造)

    大体题意 一棵树有n个结点,告诉你每层深度上有a[i]个结点,以及有多少叶子结点 让你生成这棵树 题解:考虑一颗树,如果满足每层深度上有a[i]结点,最多能有多少叶子结点 那么答案很简单,就是对(a[ ...

  9. [bzoj] 2716 天使玩偶 || CDQ分治

    原题 已知n个点有天使玩偶,有m次操作: 操作1:想起来某个位置有一个天使玩偶 操作2:询问离当前点最近的天使玩偶的曼哈顿距离 显然的CDQ问题,三维分别为时间,x轴,y轴. 但是这道题的问题在于最近 ...

  10. 解决某些PC站在手机端宽度显示不正常的问题

    可以打开控制台查看html标签的宽度,发现不是当前屏幕的宽度,更改下宽度即可:用js控制下,上代码 document.getElementsByTagName('html')[0].style.wid ...