#!/usr/bin/env python
# -*- coding:utf-8 -*-
#############正则表达式############
'''
字符:
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
次数:
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
重复n次
重复n次或更多次
重复n到m次
'''
importre
#match:从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None
text ='rainy day ! 123'
r = re.match("r\w+",text)
print(r.group())#获取匹配到的所有结果
r = re.match("r(\w+)",text)
print(r.groups())#获取模型中匹配到的分组结果,元组
r = re.match("(?Pr\w+)",text)
print(r.groupdict())#获取模型中匹配到的分组结果,字典
#search:浏览整个字符串去匹配第一个,未匹配成功返回None
text ='123rainy day 456 rainy day'
r = re.search("r(\w.*)(?P\d)",text)
print(r.group())#获取匹配到的所有结果
print(r.groups())#获取模型中匹配到的分组结果
print(r.groupdict())#获取模型中匹配到的分组中所有执行了key的组
#findall:获取非重复的匹配列表;如果有一个组则以列表形式返回,且每一个匹配均是字符串;
#如果模型中有多个组,则以列表形式返回,且每一个匹配均是元祖;
#空的匹配也会包含在结果中.
text ='123rainy day 456reason day'
r = re.findall("(\d)(r\w+)",text)
print(r)
# #
# re.finditer()
# #
# re.split()
# re.sub()
领取专属 10元无门槛券
私享最新 技术干货