成都9班-曾元 发表于 2021-11-21 21:39:36

21 python的import函数的re正则模块

# 正则表达式
'''
预定义字符集匹配:
\d:数字0-9\D:非数字\s:空白字符\n:换行符\r:回车符

re模块数量词匹配:
符号^:表示的匹配字符以什么开头
符号$:表示的匹配字符以什么结尾
符号*:匹配*前面的字符0次或n次
eg:ab* 能匹配a 匹配ab 匹配abb
符号+:匹配+前面的字符1次或n次
符号?:匹配?前面的字符0次或1次
符号{m}:匹配大括号前一个字符m次
符号{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是
'''

# re模块相关函数
import re
# 1、match从第一个字符开始匹配,如果第一个字符不是要匹配的类型,则匹配失败并报错
# 注意:如果规则带了“+”,则匹配1次或多次,无“+”只匹配一次
# str1=re.match("\d","238sfsdagasdf1452")# 2
# str1=re.match("\D","238sfsdagasdf1452")# 报错
# str1=re.match("\D","A238sfsdagasdf1452")# A
# str1=re.match("\d*","238sfsdagasdf1452")# 238
# str1=re.match("\d*","AA238sfsdagasdf1452")# 空,不报错
# str1=re.match("\d+","AA238sfsdagasdf1452") # 报错
# str1=re.match("\d+","238sfsdagasdf1452")#238
# str1=re.match("\d?","238sfsdagasdf1452")#2
# str1=re.match("^A","AA238sfsdagasdf1452")#A
# str1=re.match("^3","AA238sfsdagasdf1452")# 报错
# str1=re.match("\d{2}","238sfsdagasdf1452")#23
# str1=re.match("\d{5}","238sfsdagasdf1452")# 报错
# str1=re.match("\d{2,8}","238sfsdagasdf1452")   #238
# str1=re.match("\d{4,8}","238sfsdagasdf1452")#报错
# print(str1.group())


# 2、search 从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错
# str1=re.search("\d","239safsdasda12456")#2
# str1=re.search("\d*","2392sa12fsdasda12456") #2392
# str1=re.search("\d*","a2392sa12fsdasda12456")# 返回空
# str1=re.search("\d+","2392sa12fsdasda12456")#2392
# str1=re.search("\d+","a2392sa12fsdasda12456")#2392 具有穿透功能
# print(str1.group())


# 3、findall 从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个列表[]
# str1=re.findall("\d","a2392sa12fsdasda12456") #['2', '3', '9', '2', '1', '2', '1', '2', '4', '5', '6']
# str1=re.findall("\d*","a2392sa12fsdasda12456") # ['', '2392', '', '', '12', '', '', '', '', '', '', '', '12456', '']
# str1=re.findall("\d+","a2392sa12fsdasda12456") # ['2392', '12', '12456']
# str1=re.findall("error","5623sreroorsslierror87error")#['error', 'error'] 在指定的字符串中,匹配需要的字符
# str1=re.findall("string(.*)string","string成都时尚sssstring")
# #['成都时尚sss'] 代表匹配括号里的内容,在正则中.代表任意字符
# str1=re.findall("string(.*)string","string成都时尚sssstringstring内江时尚sssstring")
# #['成都时尚sssstringstring内江时尚sss'] 贪婪匹配
# str1=re.findall("string(.*?)string","string成都时尚sssstringstring内江时尚sssstring")
# #['成都时尚sss', '内江时尚sss'] 非贪婪匹配
# print(str1)

# 4、compile 编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]
# str1=re.compile("error")
# str2=str1.findall("errorslakjgldsSUTJShserrorssa")
# print(str2) #['error', 'error']

# str1="salfjd18255451122sldufs13954548778saaoi"
# str2=re.findall("1\d{8}",str1)#[]代表某一位上面能够取的值,{}代表要匹配几次
# print(str2)# ['18255451122', '13954548778']

页: [1]
查看完整版本: 21 python的import函数的re正则模块