python正則表達式函數match()和search()的區別

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

更多關於python正則函數請查看下面的相關文章

推薦閱讀: