知识大全 C#正则表达式整理备忘(2)
Posted 表达式
篇首语:欲穷千里目,更上一层楼。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#正则表达式整理备忘(2)相关的知识,希望对你有一定的参考价值。
C#正则表达式整理备忘(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
( )择一匹配C#正则表达式中的 (|)符号似乎没有一个专门的称谓 姑且称之为 择一匹配 吧 事实上 像[a z]也是一种择一匹配 只不过它只能匹配单个字符 而(|)则提供了更大的范围 (ab|xy)表示匹配ab或匹配xy 注意 | 与 () 在此是一个整体 下面提供一些简单的示例
string x = ; string y = ; string z = ; string a = ; string b = ; string c = ; string d = ; string e = ; Regex r = new Regex(@ ^\\+?(( ( +)*)|([ ]?[ ])(\\ \\d+)*)$ ); Console WriteLine( x match count: + r Matches(x) Count);// Console WriteLine( y match count: + r Matches(y) Count);// Console WriteLine( z match count: + r Matches(z) Count);// Console WriteLine( a match count: + r Matches(a) Count);// Console WriteLine( b match count: + r Matches(b) Count);// Console WriteLine( c match count: + r Matches(c) Count);// Console WriteLine( d match count: + r Matches(d) Count);// Console WriteLine( e match count: + r Matches(e) Count);// //匹配 到 的数 最外层的括号内包含两部分 ( ( +)*) ([ ]?[ ])(\\ \\d+)* 这两部分是 OR 的关系 即正则表达式引擎会先尝试匹配 如果失败 则尝试匹配后一个表达式(表示[ )范围中的数字)
( )特殊字符的匹配下面提供一些简单的示例
string x = \\\\ ; Regex r = new Regex( ^\\\\\\\\$ ); Console WriteLine( r match count: + r Matches(x) Count);// Regex r = new Regex(@ ^\\\\$ ); Console WriteLine( r match count: + r Matches(x) Count);// Regex r = new Regex( ^\\\\$ ); Console WriteLine( r match count: + r Matches(x) Count);// //匹配 \\ string x = \\ ; Regex r = new Regex( ^\\ $ ); Console WriteLine( r match count: + r Matches(x) Count);// Regex r = new Regex(@ ^ $ ); Console WriteLine( r match count: + r Matches(x) Count);// //匹配双引号
( )组与非捕获组以下提供一些简单的示例
string x = Live for nothing die for something ; string y = Live for nothing die for somebody ; Regex r = new Regex(@ ^Live ([a z] ) no([a z] ) die \\ some\\ $ ); Console WriteLine( x match count: + r Matches(x) Count);// Console WriteLine( y match count: + r Matches(y) Count);// //正则表达式引擎会记忆 () 中匹配到的内容 作为一个 组 并且可以通过索引的方式进行引用 表达式中的 \\ 用于反向引用表达式中出现的第一个组 即粗体标识的第一个括号内容 \\ 则依此类推 string x = Live for nothing die for something ; Regex r = new Regex(@ ^Live for no([a z] ) die for some\\ $ ); if (r IsMatch(x)) Console WriteLine( group value: + r Match(x) Groups[ ] Value);//输出 thing //获取组中的内容 注意 此处是Groups[ ] 因为Groups[ ]是整个匹配的字符串 即整个变量x的内容 string x = Live for nothing die for something ; Regex r = new Regex(@ ^Live for no(?[a z] ) die for some\\ $ ); if (r IsMatch(x)) Console WriteLine( group value: + r Match(x) Groups[ g ] Value);//输出 thing //可根据组名进行索引 使用以下格式为标识一个组的名称(?…) string x = Live for nothing nothing ; Regex r = new Regex(@ ([a z]+) \\ ); if (r IsMatch(x)) x = r Replace(x $ ); Console WriteLine( var x: + x);//输出 Live for nothing //删除原字符串中重复出现的 nothing 在表达式之外 使用 $ 来引用第一个组 下面则是通过组名来引用 string x = Live for nothing nothing ; Regex r = new Regex(@ (?[a z]+) \\ ); if (r IsMatch(x)) x = r Replace(x $g ); Console WriteLine( var x: + x);//输出 Live for nothing string x = Live for nothing ; Regex r = new Regex(@ ^Live for no(?:[a z] )$ ); if (r IsMatch(x)) Console WriteLine( group value: + r Match(x) Groups[ ] Value);//输出 (空) //在组前加上 ?: 表示这是个 非捕获组 即引擎将不保存该组的内容
( )贪婪与非贪婪
正则表达式的引擎是贪婪 只要模式允许 它将匹配尽可能多的字符 通过在 重复描述字符 (* +)后面添加 ? 可以将匹配模式改成非贪婪 请看以下示例
cha138/Article/program/net/201311/15503相关参考
C#正则表达式整理备忘(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ()回溯与非回溯
C#中的常用正则表达式总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这是我发了不少时间整理
C#使用正则表达式去除html标记 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#使用正则表
VisualC#2005中使用正则表达式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 正则表达
C#验证邮件的正则表达式的代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 验证输入的正确性
C#正则表达式判断输入日期格式是否正确 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ///&l
C#中正则表达式进行忽略大小写的字符串替换 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在C#
.NET下正则表达式应用四例[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#代码示例S
C#正则表达式编程(四):正则表达式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 提供了功能强
本篇文章是对js中正则表达式的使用进行了详细的分析介绍需要的朋友可以参考下 js中的正则表达式比起C#中的正则表达式要弱很多但基本够用了定义正则表达式关于验证的三个这则表达式方法正则表达