PyStdLib--re

re 正则表达式

语法

import re
m = re.search('[0-9]','abc4def67')  # 匹配字符及匹配范围
print m.group(0)    # 返回匹配结果
m = re.search(pattern, string, re.IGNORECASE)  # 搜索整个字符串,直到发现符合的子字符串。不区分大小写.

re.match()

m = re.match(pattern, string)   # 从头开始检查字符串是否符合正则表达式。必须从字符串的第一个字符开始就相符。

s = re.match("0ab",'0abasdasda')      # 有匹配
s = re.match("[0-9]ab",'0abasdasda')  # 有匹配
s = re.match("ab",'0abasdasda')       # 没有匹配

re.sub()

str = re.sub(pattern, replacement, string) # 在string中利用正则变换pattern进行搜索,对于搜索到的字符串,用另一字符串replacement替换。返回替换后的字符串

re.findall()

re.findall()  # 根据正则表达式搜索字符串,将所有符合的子字符串放在一给表(list)中返回

s = '0a1b2c3d4e5f6'
l=re.findall('[0-9]',s)
print l

re.split()

re.split()    # 根据正则表达式分割字符串, 将分割后的所有子字符串放在一个表(list)中返回

s = '0a1b2c3d4e5f6'
l = re.split('[0-9]',s)  # 返回列表,去除数字之后的.
print l

re.compile() 编译后的正则, 更快

import re
regexes = [re.compile(p, re.IGNORECASE) for p in ["this", "that"]]
text = 'Does this text match the pattern?'
for regex in regexes:
    print regex.pattern         # this \n that
    if regex.search(text):
        print "OK"              # OK
        print regex.search(text).group()  # this
    else:
        print "Problem"