知识大全 C#正则表达式整理备忘(3)
Posted 字符
篇首语:苟利国家生死以,岂因祸福避趋之。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#正则表达式整理备忘(3)相关的知识,希望对你有一定的参考价值。
C#正则表达式整理备忘(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
( )回溯与非回溯
使用 (?>…) 方式进行非回溯声明 由于正则表达式引擎的贪婪特性 导致它在某些情况下 将进行回溯以获得匹配 请看下面的示例
Code string x = Live for nothing die for something ; Regex r = new Regex(@ *thing ); if (r IsMatch(x)) Console WriteLine( match: + r Match(x) Value);//输出 Live for nothing Regex r = new Regex(@ (?> *)thing ); if (r IsMatch(x))//不匹配 Console WriteLine( match: + r Match(x) Value); //在r 中 * 由于其贪婪特性 将一直匹配到字符串的最后 随后匹配 thing 但在匹配 时失败 此时引擎将回溯 并在 thing 处匹配成功
在r 中 由于强制非回溯 所以整个表达式匹配失败
( )正向预搜索 反向预搜索
正向预搜索声明格式 正声明 (?=…) 负声明 (?! ) 声明本身不作为最终匹配结果的一部分 请看下面的示例
Code string x = used free ; Regex r = new Regex(@ \\d (?= used) ); if (r Matches(x) Count== ) Console WriteLine( r match: + r Match(x) Value);//输出 Regex r = new Regex(@ \\d (?! used) ); if (r Matches(x) Count== ) Console WriteLine( r match: + r Match(x) Value); //输出 //r 中的正声明表示必须保证在四位数字的后面必须紧跟着 used r 中的负声明表示四位数字之后不能跟有 used
反向预搜索声明格式 正声明 (?<=) 负声明 (?
string x = used: free: ; Regex r = new Regex(@ (?<=used:)\\d ); if (r Matches(x) Count== ) Console WriteLine( r match: + r Match(x) Value);//输出 Regex r = new Regex(@ (? if (r Matches(x) Count== ) Console WriteLine( r match: + r Match(x) Value);//输出 //r 中的反向正声明表示在 位数字之前必须紧跟着 used: r 中的反向负声明表示在 位数字之前必须紧跟着除 used: 之外的字符串
( )十六进制字符范围
正则表达式中 可以使用 \\xXX 和 \\uXXXX 表示一个字符( X 表示一个十六进制数)形式字符范围
\\xXX 编号在 到 范围的字符 比如 空格可以使用 \\x 表示
\\uXXXX 任何字符可以使用 \\u 再加上其编号的 位十六进制数表示 比如 汉字可以使用 [\\u e \\u fa ] 表示
( )对[ ]的比较完备的匹配
下面是一个比较综合的示例 对于匹配[ ] 需要特殊考虑的地方包括
* 合法 合法 合法 合法
*空字符串不合法 仅小数点不合法 大于 不合法
*数值是可带后缀的 如 f 表示该值为一个float类型(未考虑)
Code Regex r = new Regex(@ ^\\+? *(?: (\\ *)?|(\\d (?=\\ \\d)|\\d (?=($|\\ $)))(\\ \\d*)?)$ ); string x = ; while (true) x = Console ReadLine(); if (x != exit ) if (r IsMatch(x)) Console WriteLine(x + succeed! ); else Console WriteLine(x + failed! ); else break;
( )精确匹配有时候是困难的
cha138/Article/program/net/201311/15445相关参考
C#正则表达式整理备忘(1) 以下文字资料是由(全榜网网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#
C#正则表达式编程(四):正则表达式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 提供了功能强
.NET下正则表达式应用四例[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#代码示例S
本篇文章是对js中正则表达式的使用进行了详细的分析介绍需要的朋友可以参考下 js中的正则表达式比起C#中的正则表达式要弱很多但基本够用了定义正则表达式关于验证的三个这则表达式方法正则表达