1、正则所需要的命名空间是

using System.Text.RegularExpressions

2、创建Regex对象

new Regex(string pattern,RegexOptions options)

选项(options)注释
None:指定不设置任何选项
IgnoreCase:指定不区分大小写的匹配 。
Multiline:多行模式。 更改 ^ 和 $ 的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配
ExplicitCapture:指定唯一有效的捕获是显式命名或编号的 (?<name>…) 形式的组
Compiled:指定将正则表达式编译为程序集
Singleline:指定单行模式。 更改点 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配
IgnorePatternWhitespace:消除模式中的非转义空白并启用由 # 标记的注释
RightToLeft:指定搜索从右向左而不是从左向右进行
ECMAScript:为表达式启用符合 ECMAScript 的行为
CultureInvariant:指定忽略语言中的区域性差异

3、匹配
摘要:
指示所指定的正则表达式是否使用指定的匹配选项在指定的输入字符串中找到了匹配项。

语法:

IsMatch(string input, string pattern, RegexOptions options)

参数:
input:
要搜索匹配项的字符串。

pattern:
要匹配的正则表达式模式。

options:
枚举值的一个按位组合,这些枚举值提供匹配选项。

实例:字符串中是否包含数字
方式一,静态方法

bool bl = Regex.IsMatch("AbC123", @"\d+");
Response.Write(bl); 结果:True

方式二,实例方法

Regex reg = new Regex(@"\d+");
bool bl = reg.IsMatch("AbC123");
Response.Write(bl); 结果:True

4、替换

摘要:在指定的输入字符串内,使用指定的替换字符串替换与指定正则表达式匹配的所有字符串

语法:

Replace(string input, string pattern, string replacement, RegexOptions options)

参数:
input:
要搜索匹配项的字符串。
pattern:
要匹配的正则表达式模式。
replacement:
替换字符串。
options:
枚举值的一个按位组合,这些枚举值提供匹配选项。如:RegexOptions.IgnoreCase,指定不区分大小写的匹配

实例:字符串中所有字母替换为空(string.Empty)
方式一,静态方法

string str = Regex.Replace("AbC123", "[a-z]", string.Empty, RegexOptions.IgnoreCase);
Response.Write(str); 结果:123

方式二,实例方法

Regex reg = new Regex(@"[a-z]", RegexOptions.IgnoreCase);
string str = reg.Replace("AbC123",string.Empty);
Response.Write(str); 结果:123

5、获取

语法:

Match(string input, string pattern, RegexOptions options)

摘要:
使用指定的匹配选项和超时间隔在输入字符串中搜索指定的正则表达式的第一个匹配项

语法:

Matches(string input, string pattern, RegexOptions options)

摘要:
使用指定的匹配选项和超时间隔在指定的输入字符串中搜索指定的正则表达式的所有匹配项

参数:
input:
要搜索匹配项的字符串。
pattern:
要匹配的正则表达式模式。
options:
枚举值的一个按位组合,这些枚举值提供匹配选项。

方法:
NextMatch 返回下一个成功匹配的match对象
Result
Value 返回匹配的字符串
Length 匹配的长度
Index 第一个匹配内容在字符串中的起始位置
Groups 返回一个分组对象集合
Success 根据是否匹配成功返回ture or false

实例一:提取字符串中所有的数字

Regex reg = new Regex(@"\d+");
Match match = reg.Match("1+2-3");
StringBuilder str = new StringBuilder();
while (match.Success)
{
str.Append(match.Value);
//从匹配结果的位置创建新的Match对象
match = match.NextMatch();
}
Response.Write(str.ToString()); //结果:123

实例二:提取字符串中所有的数字
方式一,静态方法

StringBuilder str = new StringBuilder();
foreach (Match m in Regex.Matches("1+2-3", @"(\d+)"))
{
str.Append(m.Groups[0].Value);
}
Response.Write(str.ToString()); //结果:123 方式二,实例方法
StringBuilder str = new StringBuilder();
Regex reg = new Regex(@"\d+", RegexOptions.IgnoreCase);
MatchCollection matchs = reg.Matches("1+2-3");
foreach (Match item in matchs)
{
str.Append(item.Value);
}
Response.Write(str.ToString()); //结果:123

  

C#正则表达式 - 精通版的更多相关文章

  1. 正则表达式(Java版整理)

    基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...

  2. 正则表达式 java版

    众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛 ...

  3. WPF快速精通版

    命名空间: xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:U ...

  4. ip的正则表达式 完美版

    IP地址的长度为32位2进制,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开.例如:IP地址为10.0.0.100. 分析IP地址的每组数特点:百位,十 ...

  5. 精通 JavaScript中的正则表达式

    精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证  ...

  6. (转)精通 JS正则表达式

    精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证  ...

  7. 玩转JavaScript正则表达式

    Why Regular Expression 我们先来看看,我们干哈要学正则表达式这玩意儿: 复杂的字符串搜寻.替换工作,无法用简单的方式(类似借助标准库函数)达成. 能够帮助你进行各种字符串验证. ...

  8. javascript正则表达式速查

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接前端小尚,谢谢! 作用 数据有效性验证 替换文本 提取文本 声明方式 字面量的声明方式 示例:var re = /a/gi; RegExp声明方 ...

  9. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>

    Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...

随机推荐

  1. 基于设备树的TQ2440的中断(1)

    作者 姓名:彭东林 E-mail:pengdonglin137@163.com QQ:405728433 平台 板子:TQ2440 内核:Linux-4.9 u-boot: 2015.04 工具链: ...

  2. 使用jQuery和Bootstrap实现多层、自适应模态窗口

    本篇实践一个多层模态窗口,而且是自适应的. 点击页面上的一个按钮,弹出第一层自适应模态窗口. 在第一层模态窗口内包含一个按钮,点击该按钮弹出第二层模态窗口,弹出的第二层模态窗口会挡住第一层模态窗口,即 ...

  3. iOS App与iTunes文件传输的方法和对iOS App文件结构的说明

    转:http://www.xiaoyaoli.com/?p=368 就像很多iOS上面的播放器App一样,本文编写一个程序可以通过iTunes往里面放文件,比如编写一个音乐播放器程序,通过itune往 ...

  4. NSString 和 NSData 转换

    NSString 转换成NSData 对象 NSData* xmlData =[@"testdata" dataUsingEncoding:NSUTF8StringEncoding ...

  5. 【k8s】搭建步骤

    搭建步骤 基础概念:https://www.cnblogs.com/sxdcgaq8080/p/10640879.html ====================================== ...

  6. 1300多万条数据30G论坛大数据优化实战经验小结

    最近由于某大型网站社区论坛运行效率比较低用户反馈论坛有些卡需要对系统进行优化,论坛性能影响了公司的形象还有网站的流量,当然这也会影响到公司的收入,而且后期还需要长期维护网站的社区论坛服务. 1:并发访 ...

  7. FZU2169:shadow(最短路)

    Problem Description YL是shadow国的国王,shadow国有N个城市.为了节省开支,shadow国仅仅有N-1条道路,这N-1条道路使得N个城市连通. 某一年,shadow国发 ...

  8. Winform窗体传值

    1:委托: 父窗体; private void button1_Click(object sender, EventArgs e) { Form2 frm = new Form2(); //frm.f ...

  9. 【JAVA与C#比较】其它

    从语言方面的知识点来说,这应该是最后一篇有关java和C#的比较了.如果要了解两者具体各知识点的异同,请查看前面的相关文章,不过后面有可能存在,不能放到前面文章所列知识点的情况,应该就会补充到这里吧. ...

  10. 糟糕的css用法 1

    现在网站追求越来越漂亮好看,越来越炫,所以css是必不可少的.可是我发现许多人使用css的方式是不对的,至少是不推荐的. 比如下面的css用法不对 (1)一个页面对应一个css文件 这种做法是我深恶痛 ...