match()和search()都是python中的正則匹配函式,那這兩個函式有何區別呢?
match()函式只檢測RE是不是在string的開始位置匹配, search()會掃描整個string查詢匹配, 也就是說match()只有在0位置匹配成功的話才有返回,如果不是開始位置匹配成功的話,match()就返回none
例如:
#! /usr/bin/env python # -*- coding=utf-8 -*- import re text = 'pythontab' m = re.match(r"\w+", text) if m: print m.group(0) else: print 'not match'
結果是:pythontab
而:
#! /usr/bin/env python # -*- coding=utf-8 -*- # import re text = '@pythontab' m = re.match(r"\w+", text) if m: print m.group(0) else: print 'not match'
結果是:not match
search()會掃描整個字串並返回第一個成功的匹配
例如:
#! /usr/bin/env python # -*- coding=utf-8 -*- # import re text = 'pythontab' m = re.search(r"\w+", text) if m: print m.group(0) else: print 'not match'
結果是:pythontab
那這樣呢:
#! /usr/bin/env python # -*- coding=utf-8 -*- # import re text = '@pythontab' m = re.search(r"\w+", text) if m: print m.group(0) else: print 'not match'
結果是:pythontab