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. C# 连接Oracle数据库,免安装oracle客户端

    一.方案1 首先下面的内容,有待我的进一步测试和证实.18.12.20 被证实了,还需要安装Oracle客户端,或者本机上安装oracle数据库软件. 18.12.20 1.下载Oracle.Mana ...

  2. firedac数据集和字符串之间相互转换

    firedac数据集和字符串之间相互转换 /// <author>cxg 2018-12-20</author> unit DatasetString; interface u ...

  3. Java_集合操作_将元素插入List的指定位置

    package test; import java.util.ArrayList; import java.util.List; public class test { public static v ...

  4. 天蝎第一季/全集Scorpion迅雷下载

    英文译名 Scorpion (第1季) (2014-秋季播出)CBS.本季看点:<天蝎>双名蝎子故事描述一个高深莫测的计算机专家和一群同样具备天才头脑的国际计算机黑客共同组建全球防御网络, ...

  5. 解决VS2010连接VSS时,Access to file"\\***\rights.dat" denied

    1.通过VS2010打开项目链接VSS后,提示 Access to file"\\***\rights.dat" denied. 该提示是指没有网络访问的权限,用户要在共享文件夹有 ...

  6. itunes connect 改版后无法访问的处理办法

    很悲剧,今天要提交版本,结果itunes connect改版,然后进不去了, 限于无限loading- 是网速慢吗?再等等,先吃个饭,待会再来看-   ------------------------ ...

  7. [转]如何将PHP作为Shell脚本语言使用

    From : http://www.linuxfly.org/post/559/ 我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……).但是只有很少数的人意识到PHP也可以很好 ...

  8. poj 2240 Arbitrage 题解

    Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21300   Accepted: 9079 Descri ...

  9. 图解 MongoDB 地理位置索引的实现原理(转)

    原文链接:图解 MongoDB 地理位置索引的实现原理 地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一.我们知道,通常的数据 ...

  10. emouse思·睿—评论与观点整理之一

    虽说我主要做的硬件,平时的兴趣爱好比较关注移动互联网,混迹于虎嗅.爱范儿.雷锋网.36Kr.cnBeta.瘾科技.i黑马.TechWeb等这类科技以及创业媒体,遗憾的是系统的去写的并不多,好在还算充分 ...