1 / 13
文档名称:

正则表达式简介.doc

格式:doc   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

正则表达式简介.doc

上传人:xxj16588 2016/6/18 文件大小:0 KB

下载得到文件列表

正则表达式简介.doc

文档介绍

文档介绍:vi 替换命令简介( 在最后:) )-- 英文版原文译者按:原文因为年代久远,文中很多链接早已过期(主要是关于 vi、sed 等工具的介绍和手册),本译文中已将此类链接删除,如需检查这些链接可以查看上面链接的原文。除此之外基本照原文直译,括号中有“译者按”的部分是译者补充的说明。如有内容方面的问题请直接和 Steve Mansor 联系,当然,如果你只写中文,也可以和我联系。目录什么是正则表达式范例简单中级(神奇的咒语) 困难(不可思议的象形文字) 不同工具中的正则表达式什么是正则表达式一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用——很不幸,这篇文章也不能够改变这一点,不过,经过一点点练****之后我就开始觉得这些复杂的表达式其实写起来还是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作压缩在几分钟(甚至几秒钟)内完成。正则表达式被各种文本编辑软件、类库(例如 Rogue Wave ++ )、脚本工具(像 awk/grep/sed )广泛的支持,而且像 Microsoft 的Visual C++ 这种交互式 IDE 也开始支持它了。我们将在如下的章节中利用一些例子来解释正则表达式的用法,绝大部分的例子是基于 vi中的文本替换命令和 grep 文件搜索命令来书写的,不过它们都是比较典型的例子,其中的概念可以在 sed 、awk 、perl 和其他支持正则表达式的编程语言中使用。你可以看看不同工具中的正则表达式这一节,其中有一些在别的工具中使用正则表达式的例子。还有一个关于 vi中文本替换命令(s)的简单说明附在文后供参考。正则表达式基础正则表达式由一些普通字符和一些元字符(metacharacters )组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing" 中没有包含任何元字符,,它可以匹配"testing" 和"123testing" 等字符串,但是不能匹配"Testing" 。要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。元字符描述. 匹配任何单个字符。例如正则表达式 匹配这些字符串:rat 、 rut 、rt,但是不匹配 root 。$ 匹配行结束符。例如正则表达式 weasel$ 能够匹配字符串"He's aweasel "的末尾,但是不能匹配字符串"They are abunch of weasels. "。^ 匹配一行的开始。例如正则表达式^When in能够匹配字符串"When inthe course ofhuman events "的开始,但是不能匹配"What and When inthe" 。* 匹配 0或多个正好在它之前的那个字符。例如正则表达式.*意味着能够匹配任意数量的任何字符。\ 这是引用府,用来将这里列出的这些元字符当作普通的字符来进行匹配。例如正则表达式\$被用来匹配美元符号,而不是行尾, 类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符。[] [c 1 -c 2] [^c 1 -c 2] 匹配括号中的任何一个字符。例如正则表达式 r[aou] t匹配rat 、 rot 和rut ,但是不匹配 ret 。可以在括号中使用连字符-来指定字符的区间,例如正则表达式[0-9] 可以匹配任何数字字符;还可以制定多个区间,例如正则表达式[A-Za-z] 可以匹配任何大小写字母。另一个重要的用法是“排除”,要想匹配除了指定区间之外的字符——也就是所谓的补集——在左边的括号和第一个字符之间使用^字符,例如正则表达式[^269A-Z] 将匹配除了 2、 6、9和所有大写字母之外的任何字符。\< \> 匹配词( word )的开始( \<)和结束( \>)。例如正则表达式\ 能够匹配字符串"for the wise "中的"the" ,但是不能匹配字符串"otherwise "中的"the" 。注意:这个元字符不是所有的软件都支持的。\( \) 将\(和\)之间的表达式定义为“组”(group ),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存 9个),它们可以用\1到\9的符号来引用。| 将两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her) 匹配"itbelongs tohim "和"itbelongs toher ", 但是不能匹配"itbelongs tothem. "。注意:这个元字符不是所有的软件都支持的。+ 匹配 1或多个正好在它之前的那个字符。例如正