import re
# 通过re模块的compile函数,返回一个pattern对象
pattern = re.compile('abc')
# 通过pattern对象进行 match search findall split ...
match_obj = pattern.match('abcdef')
print(match_obj) # 匹配对象
# 匹配对象调用group获取匹配的内容
g = match_obj.group()
print(g)
match_obj = re.fullmatch('abc', 'xyzABCdef', re.I)
print(match_obj)
match_obj = re.search('abc', 'xyzABCdef', re.I)
print(match_obj)
print(match_obj.group()) # 匹配的内容
print(match_obj.span()) # 匹配内容的位置
print(match_obj.start())
s=' i am a boy'
s = re.sub(r's+','#',s) #空白用#替换 #i#am#a#good#boy#
s = 'xiaohua=20 xiaoming=21 xiaohong=19'
def change(mobj):
content = mobj.group()
result = str(int(content) + 1)
return result
s = re.sub(r'd+', change, s)
print(s) #xiaohua=21 xiaoming=22 xiaohong=20
s = 'hello25hi8kitty980world'
result = re.split(r'd+',s)
print(result) # ['hello', 'hi', 'kitty', 'world']
字符 功能
. 匹配任意1个字符(除了
)
[] 匹配[]中列举的字符
d 匹配数字,也就是0-9
D 匹配非数字,也就是匹配不是数字的字符
s 匹配空白符,也就是 空格 ab
S 匹配非空白符,s取反
w a-z, A-Z, 0-9, _
W w取反
匹配边界字符
已知一句话: 'I am a good boy , a handsome boy',提取这句话中的所有单词
s = 'I am a good boy , a handsome boy'
words = re.findall(r'[a-z]+', s, re.I)
print(words)
表示数量的规则# 已知一句话: 'I am a good boy , a handsome boy',提取这句话中的所有单词
s = 'I am a good boy , a handsome boy'
words = re.findall(r'[a-z]+', s, re.I)
print(words)
* 可有可无
+ 最少一次
? 0 或 1
{m} 匹配前一个字符出现m次
{m,} 匹配前一个字符至少出现m次
{m,n} 匹配前一个字符出现m到n次