方法
result = re.match(reg,txt) ------ #根据正则表达式匹配文本
result = re.search(reg,txt) ------ #根据正则表达式找出第一个匹配项文本
result = re.findall(reg,txt) ------ #根据正则表达式找出所有匹配项文本
result = re.sub(reg,newtxt,txt)------ #根据正则表达式修改所有匹配项文本
result = re.split(reg,txt) ------ #根据正则表达式找到匹配项进行分割
匹配字符
. ------匹配任意一个字符,不匹配\n
[] ------匹配[]中的一项字符,中划线-表示指定范围,例如a-z
\d ------匹配0-9之间的数字
\D ------匹配非数字
\w ------匹配单词符a-z,A-Z,0-9,_
\W ------匹配非单词符
\s ------匹配空格符和\t
\S ------匹配非空格符
\b ------匹配一个单词边界
\B ------匹配非单词边界
* ------匹配前一项任意次,可有可无
? ------匹配前一下最多一次,也可以做非贪婪匹配
+ ------匹配前一项至少一次
{m} ------匹配前一项m次
{m,} ------匹配前一项至少m次
{m,n} ------匹配前一项至少m次最多n次
| ------匹配左右任意一个表达式
() ------将括号里面的字符作为一个分组
\x ------克隆正则表达式中第x个分组的表达式
?P ------给分组命名
?P= ------克隆指定名字的分组表达式
使用
1.正常匹配出手机号,11位,且第二位有具体数字(3,5,7,8)
2.正常匹配出一个@163,@qq,@126.com的电子邮箱
3.正常匹配数字范围为0-299
4.正常匹配标签信息,前后标签要一致
5.正常匹配嵌套标签的信息,嵌套标签要一致
#encoding = utf-8
import re
# 1.正常匹配出手机号,11位,且第二位有具体数字(3,5,7,8)
def regPho():
reg = '^1[35789]\d{9}$'
txt = '13279806654'
result = re.match(reg,txt)
print(result)
# 2.正常匹配出一个@163,@qq,@126.com的电子邮箱
def regEmail():
reg = '^\w{4,20}@(qq|126|163)\.com$'
txt = '40504@163.com'
result = re.match(reg,txt)
print(result)
def regText():
reg1 = '\d+'
reg2 = '^\d?$'
reg3 = '\d*'
txt = '2'
result = re.match(reg2,txt)
print(result)
# 3.正常匹配数字范围为0-299
def regNum():
reg = r'^(\d|[1-9]\d|[12]\d{2})$'
txt = '221'
result = re.match(reg,txt)
print(result)
# 4.正常匹配标签信息,前后标签要一致
def regEle():
reg = r"^<(\w+)>.*<(\1)>$"
txt = '<h1>hixx<h1>'
result = re.match(reg,txt)
print(result)
# 5.正常匹配嵌套标签的信息,嵌套标签要一致
def regDoubleEle():
reg = r"^<(\w+)><(?P<we>\w+)>.*<(?P=we)><(\1)>$"
txt = '<html><h1>hixx<h1><html>'
result = re.match(reg,txt)
print(result)
def main():
regDoubleEle()
if __name__ == '__main__':
main()