C#正则表达式 - 精通版
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#正则表达式 - 精通版的更多相关文章
- 正则表达式(Java版整理)
基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...
- 正则表达式 java版
众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛 ...
- WPF快速精通版
命名空间: xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:U ...
- ip的正则表达式 完美版
IP地址的长度为32位2进制,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开.例如:IP地址为10.0.0.100. 分析IP地址的每组数特点:百位,十 ...
- 精通 JavaScript中的正则表达式
精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 ...
- (转)精通 JS正则表达式
精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 ...
- 玩转JavaScript正则表达式
Why Regular Expression 我们先来看看,我们干哈要学正则表达式这玩意儿: 复杂的字符串搜寻.替换工作,无法用简单的方式(类似借助标准库函数)达成. 能够帮助你进行各种字符串验证. ...
- javascript正则表达式速查
声明:本文为原创文章,如需转载,请注明来源并保留原文链接前端小尚,谢谢! 作用 数据有效性验证 替换文本 提取文本 声明方式 字面量的声明方式 示例:var re = /a/gi; RegExp声明方 ...
- Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>
Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...
随机推荐
- UIView 的旋转和缩放
原文地址:http://www.cnblogs.com/gaoxiao228/archive/2012/05/04/2483577.html label.transform = CGAffineTra ...
- 【SVN】如果windows用户忘记了svn的用户名和密码怎么办?
如果windows用户忘记了svn的用户名和密码怎么办? 1>你得进入默认地址 C:\Users\Administrator\AppData\Roaming\Subversion\auth\sv ...
- 排序算法之归并排序(Mergesort)解析
转自:http://www.cnblogs.com/ayqy/p/4050452.html 一.归并排序的优缺点(pros and cons) 耗费心思来理解它,总要有个理由吧: 归并排序的效率达 ...
- Swift - CALayer的contents属性动画
Swift - CALayer的contents属性动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // LiveImageVi ...
- ExtJS 4.2 教程-01:Hello ExtJS
转载自起飞网,原文地址:http://www.qeefee.com/extjs-course-1-hello-extjs, 本文还发布在了ExtJS教程网站起飞网上面,如果转载请保留本段声明,谢谢合作 ...
- swift3.0:NSURLSession的使用
一.说明 NSURLSession是OC中的会话类,在Swift中变成URLSession类,它们的实现方式是一样的,下面的示例就Swift语法进行讲解和介绍. 二.介绍: URLSession 类支 ...
- OpenGL教程(25) skybox
原帖地址:http://ogldev.atspace.co.uk/www/tutorial25/tutorial25.html Background A skybox is a technique t ...
- 【转】QT中QDataStream中浮点数输出问题
先上代码: C/C++ code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 int main(int argc, char *argv[]) { QApplicati ...
- SharePoint2010 对象模型 关联列表
有关列表的创建其实网上已经有很多文章了,其中练习 :利用Visual Studio 2010创建列表这篇文章个人感觉还不错,这里我强调的是对象模型来创建.在这之前我插入一点其他的东东,导入电子表格和数 ...
- TCP UDP Socket 即时通讯 API 示例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...