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

元字符

.

之间可以出现任意单个字符(除了\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. linux部署环境配置

    https://blog.csdn.net/dsczxcc/article/details/78728330

  2. Springboot 启动问题

    每次以debug方式启动springboot之后都会在SilentExitExceptionHandler类中的throw new SilentExitException() 解决办法 :window ...

  3. 孤荷凌寒自学python第二十天python的匿名函数与偏函数

    孤荷凌寒自学python第二十天python的匿名函数与偏函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python为使函数的使用更加方便高效,可以使用两种特殊的函数简化语句书写. 一 ...

  4. C# http Post与Get方法控制继电器

    ---恢复内容开始--- using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...

  5. 【bzoj3585/bzoj3339】mex/Rmq Problem 莫队算法+分块

    原文地址:http://www.cnblogs.com/GXZlegend/p/6805283.html 题目描述 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没 ...

  6. 【bzoj4894】天赋 矩阵树定理

    题目描述 小明有许多潜在的天赋,他希望学习这些天赋来变得更强.正如许多游戏中一样,小明也有n种潜在的天赋,但有一些天赋必须是要有前置天赋才能够学习得到的.也就是说,有一些天赋必须是要在学习了另一个天赋 ...

  7. Codeforces Round #384 (Div. 2) 734E(二分答案+状态压缩DP)

    题目大意 给定一个序列an,序列中只有1~8的8个整数,让你选出一个子序列,满足下列两个要求 1.不同整数出现的次数相差小于等于1 2.子序列中整数分布是连续的,即子序列的整数必须是1,1,1.... ...

  8. HDU 5790 Prefix(字典树+主席树)

    Prefix Time Limit: 2000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  9. Codeforces Round #359 (Div. 2) B

    B. Little Robber Girl's Zoo time limit per test 2 seconds memory limit per test 256 megabytes input ...

  10. Data_Structure01-绪论作业!

    一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算: 构造有理数T,元素e1,e2分别被赋以分子.分母值 销 ...