re正则表达式模块
admin
2023-07-15 19:02:10
0

import re
print(re.match('^chenrong','chenronghua123'))  # ^ 表示开头
#<_sre.SRE_Match object; span=(0, 8), match='chenrong'>
# span=(
匹配到的结果第几位开始,匹配到的长度)
#
有返回表示匹配到了,没返回表示没有匹配到
print(re.match('^chen','chengronghua123').group()) #group 获取匹配的字段
res=re.match('^chen','chengronghua123')
print(res.group())

res=re.match(
'^chen\d','chen321ronghua123'# \d 表示数字 匹配一个数字
print(res,'--------',res.group())

res=re.match(
'chen\d+','chen321ronghua123') #\d+ 表示一个或多个数字 match从头开始
print(res,'--------',res.group())

res=re.match(
"c.+","chen321ronghua123") # .点表示匹配任意字符
print(res)

res=re.search(
"r.+a$","chen321ronghua123a")
#search从整个文本搜索  a$表示整个字符串a结尾
print(res)

res=re.search(
'R[a-zA-Z]+a','chen321RongAhuaRonghua123arongHua12') #只匹配第一个
print(res)

res=re.search(
"aaa?",'aalexaaa') #a? 表示0次或1 都会返回结果 也就是有或没有 有或没有前面的那个a
print(res)

res=re.search(
"[0-9]{1,3}",'aa1x2a345aa') #{1,3}  表示出现的13
print(res)

res=re.findall(
"[0-9]{1,3}","aa1x2a345aa") #findall 找出所有
print(res)

res=re.findall(
"abc|ABC","ABCabcCD") # | 或的意思
print(res)

res=re.search(
"(abc){2}(\|=){2}","alexabcabc|=|="# \|  斜杠对 | 进行转译
print(res)                  #(abc){2}(\|=){2} 分组匹配

res=re.search("\A[0-9]+[a-z]\Z","123a") #\A[0-9] 数字开头 [a-z]\Z 数字结尾
print(res) # \A开头 \Z结尾

res=re.search("\D+","123$- \r\n a") #\D 匹配非数字
print(res)

res=re.findall(
"\w","aB123- \r\n a") #\w匹配数字字母
print(res)

res=re.findall(
"\W","1ddDFR23$ - \r\n a") #\W匹配特殊字符
print(res)

res=re.findall(
"\s","1dd    ng yh\r\n   ") #\s匹配空白字符 包括空格 tab 换行
print(res)

res=re.search(
"(?P[0-9]+)(?P[a-zA-Z]+)","abcd1234daf@345").groupdict()
print(res)

#特殊用法 (?P<自定义key>[需要找的]{个数})
res=re.search("(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{4})","371481199306143242").groupdict()
print(res)

print(re.search("(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{4})(?P[0-9]{4})", \
"360732199307030689").groupdict()['birthday'])

#split分隔
res=re.split("[0-9]+","abc12de3f45Gh") #按数字进行分隔 split:分隔
print(res)

#sub替换
res=re.sub("[0-9]+","----","abc12de3f45Gh",count=2) #所有的数字替换成----,替换前面2
print(res)

# 只能匹配 \\ 2个斜杠
res=re.search(r"\\","abc12de\\3f45GH")
print(res)

#忽略大小写 flags=re.I flags=re.IGNORECASE  flags:标示,标注,定义
res=re.search("[a-z]+","ancdA",flags=re.IGNORECASE)
print(res)

#多行模式 flags=re.M flags=re.MULTILINE 一样 改变开头 ^ 结尾$的行为
res=re.search("[a-z]+e$","abcdA\r\nsecondline\r\nthirdline",flags=re.M)
print(res,'---',res.group())

#S(DOTALL)模式 匹配包括换行符的任意字符 flags=re.DOTALL flags=re.S
res=re.search(r".+","\r\nabc\r\neee",flags=re.DOTALL)
print(res)


相关内容

热门资讯

特朗普:正致力于与伊朗达成协议... 特朗普在《纽约邮报》一档播客访谈节目中称,他正与伊朗磋商一项协议,伊朗已同意不再谋求拥有核武器。他表...
不接壤的日菲为何偷划海界? 日菲近日发表联合声明,宣称就“划定两国专属经济区和大陆架的海洋边界”启动正式谈判。两个隔海相望的国家...
凤凰晚报丨从钳工到老戏骨,魏宗... 今日人物【从钳工到老戏骨,魏宗万用一生诠释“戏比天大”】6月1日,表演艺术家魏宗万在上海逝世,享年8...
科威特称伊朗袭击致63人受伤 科威特卫生部门3日称,伊朗当天对科威特的袭击已造成63人受伤,相关部门已启动紧急应对预案,并在全国范...
日本标榜“和平国家”却行扩军备... 今年是东京审判开庭80周年,世界正回望历史、反思战争罪责、捍卫二战后来之不易的国际秩序之际,日本却迈...
浙江杨梅即将大规模上市,如何破... “我们现在的压力很大。”5月底,浙江余姚杨梅产区丈亭镇副镇长林宇站在一片杨梅林前对第一财经表示,当地...
致5死2伤!韩国就韩华航空航天... 【环球网报道 记者 姜蔼玲】据韩联社6月1日报道,针对位于韩国大田的韩华航空航天公司发生爆炸致7人伤...
黄河科技学院2026年招生简章 长按图片识别二维码或点击 “阅读原文” 查看电子招生简章。
医路起航,从“心” 开始!黄河... 6月1日上午,黄河科技学院附属医院2022级临床医学本科实习生入院岗前培训在大医讲堂顺利举办。院领导...
问题居然在实体卡槽上!美版iP... 6月2日消息,日前,又有博主提前把还没发布的iPhone 18 Pro电池参数给曝光了出来,根据爆料...