python 3.5 都是 unicode 模式,w 能夠直接匹配unicodepython
match 是從頭開始匹配,是要頭部相同就認爲匹配,不要求匹配整個字符串正則表達式
>>> import re >>> pattern = re.compile(r'\w+\d{6}') >>> m = pattern.match("測試201710") // 若是不能匹配到返回None,匹配到返回Match 對象 <_sre.SRE_Match object; span=(0, 8), match='測試201710'> >>> pattern.match("#測試201710") // None
search 是若是包含匹配的字符串就符合要求測試
>>> pattern.search("#測試201710") <_sre.SRE_Match object; span=(1, 9), match='測試201710'>
findallui
>>> pattern.findall("測試201710-測試201711-測試201712") ['測試201710', '測試201711', '測試201712']
finditerspa
>>> text = "He was carefully disguised but captured quickly by police." >>> for m in re.finditer(r"\w+ly", text): ... print('%02d-%02d: %s' % (m.start(), m.end(), m.group(0))) 07-16: carefully 40-47: quickly
groupcode
>>> m = re.match(r"(\d+)\.(\d+)", "24.1632") >>> m.groups() ('24', '1632') >>> >>> m.group(0) '24.1632' >>> m.group(1) '24' >>> m.group(2) '1632'
groupdict對象
>>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcolm Reynolds") >>> m.groupdict() {'first_name': 'Malcolm', 'last_name': 'Reynolds'}