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

 

posted @ 2023-10-04 10:09  小鲨鱼2018  阅读(12)  评论(0编辑  收藏  举报