Python正则表达式指南(点击打开链接)
一、正则表达式
1.如果匹配次数较多,则使用compile()先编译正则表达式。然后再使用findall,match等等方法。 2.若仅仅匹配一次,则可以直接re.match(r'\d+/\d+/\d+$', str_a) 3.match() 方法仅仅检查字符串的开始部,严格的话最后要加$ 4.使用()进行分组可以使代码看的清晰 5.r''必须使用原始字符串
import re # 01:字符串匹配 str_a = '01/27/2016' pa = re.compile(r'(\d+)/(\d+)/(\d+)$') ma = pa.match(str_a) month, day, years = ma.groups() print years, month, day # ---> 2016 01 27 text = 'Today is 11/27/2012. PyCon starts 3/13/2013.' pa = re.compile(r'(\d+)/(\d+)/(\d+)') # 02:字符串搜索 print pa.findall(text) # ---> [('11', '27', '2012'), ('3', '13', '2013')] # 03:字符串搜索和替换 print pa.sub(r'\3-\1-\2', text) # ---> Today is 2012-11-27
# 04: 最短匹配模式,'.'和'?'字符使用。 # (1). '.'匹配除换行符\n之外的任意字符。 # (2). '?'python 默认是贪婪模式,在(+, *)之后加上?就是非贪婪模式。 str_01 = 'today is heppy "yes" or "no"' print re.compile('\".*?\"').findall(str_01) #-----> ['"yes"', '"no"']