栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python笔记六(正则表达式)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python笔记六(正则表达式)

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re 模块使 Python 语言拥有全部的正则表达式功能。
本文介绍Python中常用的正则表达式处理函数。

方法:

  • split(pattern,string):按照规则将字符串内容分割,返回一个列表
    示例:
s = "dhj5sskk8hho"
#使用至少一个数字分割字符串
s1 =re.split("d+",s)
print(s1)
执行结果:

  • sub(pattern,repl,string):按照规则将字符串中匹配的内容替换成repl,返回一个新字符串
    示例:
# 将字符串中的数字替换为*
s = "dhj5sskk8hho"
s2 = re.sub("d+","*",s)
print(s2)
执行结果:

  • findall(pattern,string,[,控制字符串]): 以列表返回字符串string中与pattern规则匹配的内容,如果为空,则返回空列表
    – 控制字符:

    re.S: 使元字符.可以匹配包括换行符n在内的所有字符
    re.I:不区分大小写

    示例1:

#. 匹配换行符n以外的任意一个字符
ss = "syandhha*7ua5cpA88&"
ss1 = re.findall("a.",ss)
print(ss1)
# 返回字符串中符合规则的内容,包括换行符n在内的字符;['an', 'a*', 'a5']
ss2 = re.findall("a.",ss,re.S)
print(ss2)
# 返回字符串中符合规则的内容,不区分大小写;['a*', 'a5', 'A8']
ss3 =re.findall("a.",ss,re.I)
print(ss3)
执行结果:


示例2:

ss = "syandhha*7ua5cpA88&"
# 返回字符串中符合规则的内容,包括换行符n在内的字符,并且不区分大小写;['an', 'a*', 'a5', 'A8']
ss4 = re.findall("a.",ss,re.S|re.I)
print(ss4)
执行结果:

元字符

. 匹配换行符n以外的任意一个字符

w 匹配一个单词字符(字母数字下划线)
示例:

ss = "syandhha*7ua5cpA88&"
# . 匹配换行符n以外的任意一个字符
ss1 = re.findall("a.",ss)
print(ss1)
# 返回字符串中
执行结果:

sss = "andga06a&9a23a_mn"
sss1 = re.findall("aw",sss)
print(sss1)
执行结果:


W 匹配非单词字符
示例:

sss = "andga06a&9a23a_mn"
# W 匹配非单词字符   ['an', 'a&', 'a#']
sss2 =re.findall("aW",sss)
print(sss2)
执行结果:


d 匹配数字
示例:

sss = "andga06a&9a23a_mn"
# d 匹配数字  ['a0', 'a2']
sss3 = re.findall("ad",sss)
print(sss3)
执行结果:


dd 匹配2个数字
D 匹配非数字字符
示例:

sss = "andga06a&9a23a_mn"
# D 匹配非数字字符 ['an', 'a&', 'a_']
sss5 = re.findall("aD",sss)
print(sss5)
执行结果:


s 匹配空白字符
示例:

a = "ats2anwa ta1a&2"
# s 匹配空白字符  ['at', 'an', 'a ']
a1 = re.findall("as",a)
print(a1)
执行结果:


S 匹配非空白字符
示例:

a = "ats2anwa ta1a&2"
# S 匹配非空白字符  ['a1', 'a&']
a2 = re.findall("aS",a)
print(a2)
执行结果:


^ 匹配字符串开头
示例:

a = "ats2anwa ta1a&2"
# ^ 匹配字符串开头 ['at']
a3 =re.findall("^a.",a)
print(a3)
执行结果:


$ 匹配字符串结尾
示例:

a = "ats2anwa ta1a&2"
# $ 匹配字符串结尾  ['2']
a4 = re.findall("d$",a)
print(a4)
执行结果:


*匹配前一个字符任意次
示例:

aa = "a12a123c67a8da"
# 匹配单词字符开头数字结尾 ,其中数字也是单词字符 ['a1', 'a1', '23', 'c6', 'a8']
aa1 = re.findall("wd",aa)
print(aa1)
# 匹配a开头数字结尾,数字可为0个或多个 ['a12', 'a123', 'a8', 'a']
aa2 = re.findall("ad*",aa)
print(aa2)
执行结果:


+匹配前一个字符至少一次
示例:

aa = "a12a123c67a8da"
# 匹配a开头至少一个数字结尾 ['a12', 'a123', 'a8']
aa3 = re.findall("ad+",aa)
print(aa3)
执行结果


? 匹配前一个字符0次或者一次
示例:

aa = "a12a123c67a8da"
# 匹配a开头0个或者一个数字结尾  ['a1', 'a1', 'a8', 'a']
aa4 = re.findall("ad?",aa)
print(aa4)
执行结果:


{n} 匹配前一个字符n次
示例:

aa = "a12a123c67a8da"
# 匹配a开头n个数字结尾  ['a12', 'a12']
aa5 = re.findall("ad{2}",aa)
print(aa5)
执行结果:


{n,} 匹配前一个字符至少n次
示例:

aa = "a12a123c67a8da"
#匹配a开头至少n个数字结尾  ['a12', 'a123']
aa6 = re.findall("ad{2,}",aa)
print(aa6)
执行结果:


{n,m} 匹配前一个字符至少n次,最多m次
示例:

aa = "a12a123c67a8da"
#匹配a开头至少n个数字,最多m个数字结尾  
aa8 = re.findall("ad{1,3}",aa)
print("aa8:",aa8)

执行结果:

{,m} 匹配前一个字符最多m次
示例:

# 匹配a开头最多n个数字结尾  ['a12', 'a123', 'a8', 'a']
aa7 = re.findall("ad{,4}",aa)
print(aa7)
执行结果:


.* 匹配任意字符

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号