一 通配字符
.(句点)字符被称为通配符,它匹配除了换行符以外的所有字符。
例如:
>>> atRegex = re.compile(r'.at') >>> atRegex.search('The cat in the hat sat on the flat mat.') <_sre.SRE_Match object; span=(4, 7), match='cat'>
二 用点-星号匹配所有的字符
(.*)表示匹配任意文本。
>>> import re >>> nameRegex = re.compile(r'firstname:(.*)') >>> nameRegex.search('firstname:liu').group() 'firstname:liu'
(.*)使用‘贪心’模式:它总是匹配尽可能多的文本。
(.*?)表示非贪心模式匹配所有文本。
例如:
>>> xRegex = re.compile(r'<.*?>') #匹配所有<>的文本,非贪心模式 >>> mo = xRegex.search('<To serve man> for dinner.') >>> mo.group() '<To serve man>' >>>
贪心模式:
>>> xRegex = re.compile(r'<.*>') #贪心模式 >>> mo = xRegex.search('<To serve man> for dinner.>') >>> mo.group() '<To serve man> for dinner.>' #匹配最大的文本
三 用句点字符匹配换行
点-星匹配除换行之外所有字符。通过传入re.DOTALL作为re.compile()的第二个参数,可以让句点字符匹配所有字符,包括换行。
例如:
#匹配所有文本,不包括换行符 >>> name = re.compile(r'.*') >>> no = name.search('firstname = liu Lstname = liuyong') >>> no.group() 'firstname = liu' #匹配所有文本,包括换行符 >>> name = re.compile(r'.*',re.DOTALL) >>> no = name.search('firstname = liu Lstname = liuyong') >>> no.group() 'firstname = liu Lstname = liuyong'