分钟学会正则表达式.docxVIP

  1. 1、本文档共27页,可阅读全部内容。
  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文档。上传文档
查看更多
分钟学会正则表达式

55分钟学会正则表达式本文由?伯乐在线?-?programmer_lin?翻译自?qntm。未经许可,禁止转载!欢迎加入:技术翻译小组,或分享原创到伯乐头条。伯乐在线补充:推荐几个正则表达式编辑器Debuggex :/PyRegex:/Regexper:/?正则表达式是一种查找以及字符串替换操作。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于:检查文本中是否含有指定的特征词找出文中匹配特征词的位置从文本中提取信息,比如:字符串的子串修改文本与文本编辑器相似,几乎所有的高级编程语言都支持正则表达式。在这样的语境下,“文本”也就是一个字符串,可以执行的操作都是类似的。一些编程语言(比如Perl,JavaScript)会检查正则表达式的语法。正则表达式是什么?正则表达式只是一个字符串。没有长度限制,但是,这样的正则表达式长度往往较短。如下所示是一些正则表达式的例子:I had a \S+ day today[A-Za-z0-9\-_]{3,16}\d\d\d\d-\d\d-\d\dv(\d+)(\.\d+)*TotalMessages=(.*?)[^]这些字符串实际上都是微型计算机程序。正则表达式的语法,实际上是一种轻量级、简洁、适用于特定领域的编程语言。记住这一点,那么你就很容易理解下面的事情:每一个正则表达式,都可以分解为一个指令序列,比如“先找到这样的字符,再找到那样的字符,再从中找到一个字符。。。”每一个正则表达式都有输入(文本)和输出(匹配规则的输出,有时是修改后的文本)正则表达式有可能出现语法错误——不是所有的字符串都是正则表达式正则表达式语法很有个性,也可以说很恐怖有时可以通过编译,使得正则表达式执行更快在实现中,正则表达式还有其他的特点。本文将重点讨论正则表达式的核心语法,在几乎所有的正则表达式中都可以见到这些规则。特别提示:正则表达式与文件通配语法无关,比如 *.xml正则表达式的基础语法字符?正则表达式中包含了一系列的字符,这些字符只能匹配它们本身。有一些被称为“元字符”的特殊字符,可以匹配一些特殊规则。如下所示的例子中,我用红色标出了元字符。I had a?\S+?day today[A-Za-z0-9\-_]{3,16}\d\d\d\d-\d\d-\d\dv(\d+)(\.\d+)*TotalMessages=(.*?)[^]*?大部分的字符,包括所有的字母和数字字符,是普通字符。也就意味着,它们只能匹配它们自己,如下所示的正则表达式:cat意味着,只能匹配一个字符串,以“c”开头,然后是字符“a”,紧跟着是字符“t”的字符串。到目前为止,正则表达式的功能类似于常规的Find功能Java中的?String.indexOf()?函数PHP中的?strpos()函数等等注意:不做特殊说明,正则表达式中是区分大小写的。但是,几乎所有正则表达式的实现,都会提供一个Flag用来控制是否区分大小写。点“.”我们第一个要讲解的元字符是“.”。这个符号意味着可以匹配任意一个字符。如下所示的正则表达式:c.t意味着匹配“以c开头,之后是任意一个字符,紧跟着是字母t”的字符串。在一段文本中,这样的正则表达式可以用来找出cat,?cot,?czt这样的字符串,甚至可以找出c.t这样的组合,但是不能找到ct或者是coot这样的字符串。使用反斜杠“\”可以忽略元字符,使得元字符的功能与普通字符一样。所以,正则表达式c\.t表示“找到字母c,然后是一个句号(“.”),紧跟着字母t”反斜杠本身也是一个元字符,这意味着反斜杠本身也可以通过相似的方法变回到普通字符的用途。因此,正则表达式c\\t表示匹配“以字符c开头,然后是一个反斜杠,紧跟着是字母t”的字符串。注意!在正则表达式的实现中,.是不能用于匹配换行符的。”换行符“的表示方法在不同实现中也不同。实际编程时,请参考相关文档。在本文中,我认为.是可以匹配任意字符的。实现环境通常会提供一个Flag标志位,来控制这一点。字符类字符类是一组在方括号内的字符,表示可以匹配其中的任何一个字符。正则表达式c[aeiou]t,表示可以匹配的字符串是”以c开头,接着是aeiou中的任何一个字符,最后以t结尾”。在文本的实际应用中,这样的正则表达式可以匹配:cat,cet,cit,cot,cut五种字符串。正则表达式[0123456789]表示匹配任意一个整数。正则表达式[a]表示匹配单字符a。包含忽略字符的例子a表示匹配字符串[a][\[\]\ab]表示匹配的字符为”[或者]”或者”a”,或者”b”[\\\[\]]表示匹配的字符为”\”或者 “[”或者]“在字符类中,字符的重复和出现顺序并不重要。[dabaaabcc]与[abc]是相同的重要提示:字符类中和字符类外的规则有时不同,一些字符在字符

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档