正则表达式快速入门.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教程精选:正则表达式快速入门作者: 开心石头 出处: 天极网 责任编辑: wenwu [ 2005-12-02 11:06 ] 【导读】正则表达式是从左向右去匹配目标字符串的一组模式。大多数字符在模式中表示它们自身并匹配目标中相应的字符 正则表达式广泛出现在UNIX/Linux相关的各种领域和多种编程语言里。从常见的shell命令到大名鼎鼎的Perl语言再到当前非常流行的PHP,它都扮演着一个重要的角色。甚至windows的命令行控制台也支持正则表达式。如果你是一个Linux服务器管理员,你经常会在一些服务器的设置脚本里看到它。 可以说,它是学好Linux/UNIX必需掌握的一个知识点,否则你连Linux的启动脚本都读不懂。偏偏它又的确有点晦涩难懂,而且相关的资料又大部分是英文,更为它的学习增加了几多困难。即使有些中文的翻译资料,不同的译者对一些术语的译法也五花八门,读着让人平添困惑。为此,我决定为它写一个简明教程,尽量可以覆盖正则表达式涉及到的各主要概念。 我并不想把本文写成一本详细的正则表达式语法手册,事实上,这些手册已经存在了,不过读起来比较难懂。我希望的是在完成本教程后,你可以比较轻松的读懂各种工具的正则表达式语法手册并可以迅速上手,不过要用好正则表达式,可不是一篇短短的教程可以解决的,那是无数实践练习的结果。但是,本文的最后一部分对于正则表达式的编写提出了一些原则性的建议,学习一下这些正则表达式应用先驱者的经验会让我们在今后的实践中少走一些弯路。 正则表达式是英文regular expressions”的译文,它的产生据说可以追溯到神经网络等比较高深的理论。那么什么是正则表达式呢? 正则表达式是从左向右去匹配目标字符串的一组模式。大多数字符在模式中表示它们自身并匹配目标中相应的字符。举个最简单的例子,模式The quick brown fox”匹配了目标字符串中与其完全相同的一部分。 前面已经提过,正则表达式被许多植根于UNIX/Linux的工具采用,可是这些工具的正则表达式语法并不完全相同,它们中的一些对正则表达式语法的扩展并不被其它工具识别,这也为正则表达式的使用增加了难度。因此,当你在一个具体的环境中使用正则表达式时,你还要先看一下目标环境支持的语法范围,以确保你的正则表达式被正确的解析。在本文中列举的例子里,我们用正斜线“/”做为模式的定界符(delimiter),一个模式用下面这种格式表示:/[A-Z]+(abc|xyz)*/I 本文将较详细的阐明下面这些正则表达式概念:模式修正符(modifier),元字符(Meta-characters),子模式(subpatterns)与逆向引用(Back references),重复(Repetition)和量词(quantifiers),断言(Assertions),注释,正则表达式中的递归,最后我介绍一款方便学习正则表达式的工具并介绍一些正则表达式编写的思路。正则表达式的模式修正符(modifier)正则表达式的模式修正符主要用来限定模式与目标字符串的匹配方式,例如是否需要大小写敏感的匹配,是单行模式还是多行模式。修正符中的空格和换行被忽略,其它字符会导致错误。下面列举一些常见的模式修正符。注意,模式修正符是区分大小写的。 i:非大小写敏感模式,:如果设定此修正符,模式中的字符将同时匹配大小写字母。 m:多行模式,当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。 s:单行模式,如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。 对于多行模式和单行模式,一个容易让初学者迷惑的地方是这两者并不向字面上那样是互斥的。事实上,它们只是分别定义了英文句点(.)、音调符(^)和美元符($)这三个元字符的匹配方式,因此,单行模式与多行模式的修正符可以同时使用。 x:如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。它使得可以在复杂的模式中加入注释。我们会在后面的部分更详细的讲解正则表达中的注释。 模式修正符还有很多,这里不再一一列举。我们会结合后面的内容介绍一些其它的模式修正符。不同的工具也可以添加自己的模式修正符,不过上面几最为常见。 模式修正符通常跟在模式定义结束符的后面,例如下面例子中模式最后的“i”字符。/[A-Z]+(abc|xyz)*/i,这时此修正符会对整个匹配模式起作用。模式修正符也可以在模式内部通过包含在 (? 和 ) 之间的修正符字母序列来实现。例如,(?im) 设定了不区分大小写,多行模式。也可以通过在字母前加上减号来取消这些

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档