正規表示式

2021-06-02 06:28:40 字數 2634 閱讀 9038

#!/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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...