python 中 re模块
正则表达式其本身就是一种小型的,高度专业化的编程语言。在Python中,它被内 嵌在了re模块里面,正则表达式模式被编译成一系列的字节码,然后由用C编写的匹 配引擎执行。
001、re.search
a、
>>> re.search('www', 'www.runoob.com') ## 返回了匹配的范围和匹配的字符串 <_sre.SRE_Match object; span=(0, 3), match='www'> >>> re.search('run', 'www.runoob.com') <_sre.SRE_Match object; span=(4, 7), match='run'>
b、
>>> re.search('www', 'www.runoob.com').span() ## 加span选项可以直接返回匹配的范围 (0, 3) >>> re.search('run', 'www.runoob.com').span() (4, 7)
002、re.match
a\
>>> re.match('www', 'www.runoob.com') ## 只有在开头才显示匹配的结果 <_sre.SRE_Match object; span=(0, 3), match='www'> >>> re.match('com', 'www.runoob.com') >>> re.match('run', 'www.runoob.com')
b\
>>> re.match('www', 'www.runoob.com').span() ## 直接返回匹配的范围 (0, 3) >>> re.match('run', 'www.runoob.com').span() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'NoneType' object has no attribute 'span'
003、re.findall
>>> re.findall('g','runoob 123 google 456') ## 查找g字符,返回列表 ['g', 'g'] >>> re.findall('\d','runoob 123 google 456') ## 查找数字,返回列表 ['1', '2', '3', '4', '5', '6'] >>> re.findall('\d+','runoob 123 google 456') ## 查找连续数字,返回列表 ['123', '456']
004、re.finditer
>>> re.findall(r"\d+","12a32bc43jf3") ## re.findall直接返回数字 ['12', '32', '43', '3'] >>> re.finditer(r"\d+","12a32bc43jf3") ## re.finditer返回迭代器 <callable_iterator object at 0x7f38b047d908> >>> for i in re.finditer(r"\d+","12a32bc43jf3"): ... print(i.group()) ... 12 32 43 3
005、re.split
a\
>>> re.split(r"ab", "cdefabcdefabcxyabcdmn") ## 按照指定字符拆分字符串,默认全部拆分 ['cdef', 'cdef', 'cxy', 'cdmn'] >>> re.split(r"ab", "cdefabcdefabcxyabcdmn",1) ## 拆分一次 ['cdef', 'cdefabcxyabcdmn'] >>> re.split(r"ab", "cdefabcdefabcxyabcdmn", 2) ## 拆分两次 ['cdef', 'cdef', 'cxyabcdmn']
b\
>>> re.findall("Y.{3}[aA]", "YunyaYufajfYunyaYUNYA") ## "Y.{3}[aA]" 字符串表示匹配Y然后3个任意字符,然后匹配大写或者小写a ['Yunya', 'Yunya', 'YUNYA'] >>> re.split("Y.{3}[aA]", "YunyaYufajfYunyaYUNYA") ['', 'Yufajf', '', '']
006、re.sub
>>> re.sub("ab", "QQQ", "cdefabcdefabcxyabcdmn") ## 从字符串中将ab替换为QQ 'cdefQQQcdefQQQcxyQQQcdmn' >>> re.sub("ab", "QQQ", "cdefabcdefabcxyabcdmn", 1) ## 可以指定替换的次数 'cdefQQQcdefabcxyabcdmn' >>> re.sub("ab", "QQQ", "cdefabcdefabcxyabcdmn", 2) 'cdefQQQcdefQQQcxyabcdmn'
。
参考:https://blog.csdn.net/weixin_65690979/article/details/130304842
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-10-04 文本文件和二进制文件有什么区别?
2020-10-04 R语言中duplicated函数:去重复,取重复
2020-10-04 linux系统中输入输出重定向 0<、<、1>、>、2>、1>>、>>、2>>、&>、>&、&>>、2>&1、<<