正则表达式
‘.’ 匹配除了换行符之外的任意字符
‘^’ 以……为开始
‘$’ 以……为结束
‘+’ 包含一个或多个字符
‘*’ 包含0个或多个字符
‘?’包含0个或1个字符
‘+?,*?,??’ python中默认的匹配原则是贪婪的(+,*, ?默认都是贪婪匹配),即尽可能多的匹配到符合要求的字符。(+,*, ?)后面加上?后就变成非贪婪匹配,即尽可能匹配少的符合要求的字符。(贪婪与非贪婪的前提都是要可以匹配到符合正则表达式的字符)。
{m} 匹配重复m次的字符,如a{6}则可以匹配到 :aaaaaa
{m,n} 匹配重复m~n个的字符,如a{1,4},可以匹配:a,aa,aaa,aaaa
{m,n}?用非贪婪匹配m~n个字符,如aaaaaa需要匹配a{1,4}?则只能匹配一个a
[] 匹配括号中的任意一个字符,如[a~z]则可以匹配26个英文字母
re 常用方法
- re.match(pattern, string[, flags])
import re
pattern = re.compile(r'(one)(one)')
result = re.match(pattern, 'oneone2three3four4')
print result.group()
print result.groups()
#output
# group() :oneone
#groups():('one', 'one')
- re.search(pattern, string[, flags])
- re.split(pattern, string[, maxsplit])
- re.findall(pattern, string[, flags])
- re.finditer(pattern, string[, flags])
- re.sub(pattern, repl, string[, count])
- re.subn(pattern, repl, string[, count])