#!/usr/bin/python
#-*-coding: utf-8-*-
import re
def info(m):
if m is not none:print m.group()
print 'match 和 search 的區別'
m = re.search('foo', 'seafood')
info(m)
m = re.match('foo', 'seafood')
info(m)
#'search 和 match最大的區別就是:match 是其起始處匹配模式,字串的第乙個字元必須滿足匹配模式第乙個字元,以此類推;search 則搜尋整個字串,而非第乙個字串'
print '匹配多個字串 |'
bt = 'bat|bet|bit'
m = re.match(bt, 'bat')
info(m)
m = re.match(bt, 'blt')
info(m)
m = re.match(bt, 'he bit me!')
info(m)
m = re.search(bt, 'he bit me!')
info(m)
print '匹配任意單個字元(.)'
anyend = '.end'
m = re.match(anyend, 'bend')
info(m)
m = re.match(anyend, 'end')
info(m)
m = re.match(anyend, '\nend')
info(m)
m = re.search(anyend, 'the end.')
info(m)
print '建立字元集合()'
m = re.match('[cr][23][dp][o2]', 'c3po')
info(m)
m = re.match('kevin|gary', '1gary1')
info(m)
m = re.search('kevin|gary', '1gary1')
info(m)
print '重複特殊字元和自組'
patt = '\w+@(\w+\.)?\w+\.com'
m = re.match(patt, 'nobody@***.com')
info(m)
m = re.match(patt, 'nobody@www.***.com')
info(m)
m = re.match('(\w\w\w)-(\d\d\d)', 'abc-123')
print m.group()
print m.group(1)
print m.group(2)
print m.groups()
m = re.match('((a)(b))', 'ab')
print m.groups()
print m.group()
print m.group(0)
print m.group(1)
print m.group(2)
print m.group(3)
print '開頭,結尾,邊界的匹配'
m = re.search('^the', 'the end.')
info(m)
m = re.search('^the', 'end.the')
info(m)
m = re.search(r'\bthe', 'bite the dog')
info(m)
m = re.search(r'\bthe', 'bitethe dog')
info(m)
m = re.search(r'\bthe', 'bitthe dog')
info(m)
print 'findall()找到每乙個匹配的部分'
print re.findall('car', 'car')
print re.findall('car', 'the car is good, so car他')
print 'sub()和subn()搜尋和替換'
print re.sub('x', 'mr. simth', 'attn: x\ndear x,\n')
print re.subn('x', 'mr. simth', 'attn: x\ndear x,\n')
print re.sub('[ab]', 'x', 'gary,bing')
print '用split()分割(分割模式)'
print re.split(':', 'str1:str2:str3')
print '貪婪模式'
patt = '\d+-\d+-\d+'
data = 'thu feb 15 17:46:04 2007::[email protected]::1171590364-6-8'
print re.search(patt, data).group()
patt = '.+?(\d+-\d+-\d+)'
m = re.search(patt, data)
print m.group()
print m.group(0)
print m.group(1)
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...