网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
正则表达式 Regular Expression
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
的group名字,backreference后面详细讲述。这个语法形式是.Net正则表达式的,其它正则表达式引擎也有支持条件式结构的,但语法可能不一样。
例如正则式(?(\\d{4})((19|20)\\d{2})|(\\d{2}))匹配文本串\"2004年 98年\",结果是\"2004\", \"98\",其中\"2004\"是使用patternYes部分匹配出来的,而\"98\"是使用patternNo部分。

Quantifier(量词)
指表达式需要重复匹配多少次。
*       0或多次
+      1或多次
?       作为量词时表示0或1次,在其它量词后面出现时作为greedy, lazy/non-greedy模式开关。
{n}     n次
{n,}    最少n次
{n,m} 最少n次,最多m次
*?, +?, {n}?, {n,}?, {n,m}?  开启lazy/non-greedy模式,例如{n,m}表示最少n次,最多m次,在这个范围内尽可能少的匹配。
greedy, lazy/non-greedy模式参考下面相关部分。

Zero-Width Assertions(零宽度断言) 
这种结构产生的匹配结果长度为0(所以称作零宽度),只是用于对上下文环境做判断(所以称作断言)。
^      如果使用Multiline选项,匹配每一行的开始位置;如果使用Singleline选项,匹配整个字符串开始位置。^如果出现在中就不是Zero-Width Assertion了。
contentnbsp;     如果使用Multiline选项,匹配每一行的结束位置(\\n之前);如果使用Singleline选项,匹配整个字符串结束位置。
\\A     忽略Multiline选项(相当于取消Multiline选项并设置Singleline选项),匹配整个字符串开始位置。
\\Z     忽略Multiline选项,匹配整个字符串结束位置,中间的\\n不会考虑。.Net中\\z和\\Z的效果完全一样,不知道是bug还是怎么回事。
前面提到的条件式结构,以及\\b如果不是出现在中,都是Zero-Width Assertions;后面将会讲到的lookahead, lookbehind也是一种Zero-Width Assertion。 
Multiline, Singleline等,参考正则表达式选项部分。

Greedy, Lazy/Non-greedy(贪婪模式,惰性模式)
在使用quantifier量词修饰,需要执行重复n次的匹配中,greedy模式尽可能多的匹配更多字符,而lazy/non-greedy模式则尽可能少的匹配字符。
NFA(参考后面NFA, DFA部分)默认都是采用greedy模式,而当今主要正则表达式引擎都是NFA,因此注意greedy模式的影响。将greedy模式改为non-greedy,在量词修饰符后面添加\"?\"实现。例如NFA中\\w+为greedy模式,\\w+?为non-greedy模式。 [Page]

文本串为:\"dxxxdxxxd\",greedy模式:
 Regular Expression  Result  
 (d)(\\w+)   \"\\w+\"将匹配第一个\"d\"之后的所有字符\"xxxdxxxd\"  
 (d)(\\w+)(d)   \"\\w+\"将匹配第一个\"d\"和最后一个\"d\"之间的所有字符\"xxxdxxx\"。虽然\"\\w+\"也能够匹配上最后一个\"d\",但是为了使整个表达式匹配成功,\"\\w+\"可以\"让出\"它本来能够匹配的最后一个\"d\"  

文本串为:\"dxxxdxxxd\",non-greedy模式:
 Regular Expression  Result  
 (d)(\\w+?)   \"\\w+?\"将尽可能少的匹配第一个\"d\"之后的字符,结果是:\"\\w+?\"只匹配了一个\"x\"(第二个字符)  
 (d)(\\w+?)(d)   为了让整个表达式匹配成功,\"\\w+?\"不

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号