码迷,mamicode.com
首页 > 其他好文 > 详细

6.正则表达式

时间:2016-06-06 23:32:14      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

1.正则表达式基础

1.1 简单介绍

正则表达式进行匹配的流程:

技术分享

正则表达式大致的匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。如果表达式中有量词或边界,这个过程会稍微有些不同,但也是很好理解的,看下图的示例以及自己使用多几次就能明白。

下图列出了python支持的正则表达式元字符和语法:

技术分享

1.2.数量词的贪婪模式与非贪婪模式

正则表达式通常用于在文本中查找匹配的字符串。python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪则相反,总是尝试匹配尽可能少的字符。例如:正则表达式“ab*”,如果用于查找“abbbc”,将找到“abbb”。而如果使用非贪婪的数量词“ab*?”,将找到“a”。

1.3.反斜杠的困扰

与大多数编程语言相同,正则表达式里使用“\”作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符“\”,那么使用编程语言表示的正则表达式将需要4个反斜杠“\\\\”:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r“\\”表示。同样,匹配一个数字的"\\d"可以写成r"\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

1.4.匹配模式

正则表达式提供了一些可用的匹配模式,比如忽略大小写,多行匹配等,这部分内容将在Pattern类的工厂方法re.compile(pattern[,flags])中一起介绍。

6.正则表达式

标签:

原文地址:http://www.cnblogs.com/waitingintherain/p/5565407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!