標籤:區別 正則匹配 ext ble table body 尋找 成功 bin
match()和search()都是python中的正則匹配函數,那這兩個函數有何區別呢?
match()函數只檢測RE是不是在string的開始位置匹配, search()會掃描整個string尋找匹配, 也就是說match()只有在0位置匹配成功的話才有返回,如果不是開始位置匹配成功的話,match()就返回none
例如:
| 1234567891011 |
#! /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
而:
| 123456789101112 |
#! /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()會掃描整個字串並返回第一個成功的匹配
例如:
| 123456789101112 |
#! /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
那這樣呢:
| 123456789101112 |
#! /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
pythonRegex函數match()和search()的區別詳解