python 正则表达式
re模块
re模块函数 - python2.7
- match(pattern, string, flags=0)
从字符串的起点开始匹配,返回匹配的对象;若无匹配项,返回None.
print re.match('s','string_pattern')
<_sre.SRE_Match object at 0x02474C60>
print re.match('s','#24s')
None
- search(pattern, string, flags=0)
在字符串中做任意匹配,返回匹配的对象;若无匹配项,返回None.
print re.search('g','string_pattern')
<_sre.SRE_Match object at 0x02554C60>
print re.search('!','#24s')
None
- compile(pattern, flags=0)
编译正则表达式,返回一个正则表达式对象
pattern = re.compile('[0-9]+')
print pattern.match('abcd123@#$%OPQ')
None
print pattern.search('abcd123@#$%OPQ')
<_sre.SRE_Match object at 0x02384C60>
- split(pattern, string, maxsplit=0, flags=0)
通过正则表达式将字符串分离,maxsplit是分离的次数,=1分离一次,默认=0不限制次数
返回分离的list,若未匹配,返回整个字符串
pnstr = 'str1、str2,str3++444.'
print re.split('\W+',pnstr)
['str1', 'str2', 'str3', '444', '']
print re.split('\W+',pnstr,1)
['str1', 'str2,str3++444.']
print re.split('(\W+)',pnstr)
['str1', '\xe3\x80\x81', 'str2', ',', 'str3', '++', '444', '.', '']
- findall(pattern, string, flags=0)
找到匹配的所有子串,返回子串的列表;无匹配,返回空列表
print re.findall('char','123')
[]
print re.findall('\w','a big guy')
['a', 'b', 'i', 'g', 'g', 'u', 'y']
- sub(pattern, repl, string, count=0, flags=0)
使用给定的字符串repl替换匹配的字串,返回字符串string;count=替换最大次数
pattern = '{ptn}'
rpl = '1'
str = 'Number:{ptn}、{ptn}、{ptn}、{ptn}'
print re.sub(pattern, rpl, str, 1)
Number:1、{ptn}、{ptn}、{ptn}
rpl = '2'
print re.sub(pattern, rpl, str)
Number:2、2、2、2
- escape(pattern)
对所有非字母数字字符进行转义
print re.escape('http://www.example.com')
http\:\/\/www\.example\.com