python正则表达式re.match,python re匹配规则
大约十年前,自动挡汽车是人们外出的流行工具。后来人们觉得很难骑到很远的地方,就在自行车上加了电池,成了当时电动车的简易版。同样,在python3的re模块中,正则表达式经常和re一起使用。边肖认为它们之间的关系类似于自动汽车和电池的装配。你怎么想呢?下面就一起来说说怎么用吧。
#使用Python正则表达式的几个推荐步骤
进口
Regex=re . pile(r regular expression )#创建一个regex对象,使用r 原始字符串,不进行转义。
regex.match()#
Regex.search()#返回包含搜索字符串中第一个匹配文本的Match对象。
Regex.findall()#返回包含搜索字符串中所有匹配项的字符串列表。
Regex.sub()#替换字符串并接收两个参数,一个新字符串和一个正则表达式。
.简单的例子:
进口
Regex=re.pile (r \ b \ w {6} \ b) #匹配6个字符的单词
regex . search( my phone numberis 421-2343-121 )
text=regex . search( my phone numberis 421-2343-121 )
Text.group()#调用group()返回结果
编号
regex=re . pile(r 0 \ d { 2 }-\ d { 8 } 0 \ d { 3 }-\ d { 7 } )#注意分支条件的使用。
text=regex . search( my phone numberis 021-76483929 )
text.group()
021-76483929
text=regex . search( my phone numberis 0132-2384753 )
text.group()
0132-2384753
regex=re . pile(r (0 \ d { 2 })-(\ d { 8 }))#括号分组的使用
text=regex . search( my phone numberis 032-23847533 )
text.group(0)
032-23847533
text.group(1)
032
正文.组(2)
23847533
regex=r
e.compile(r'(0\d{2}-)?(\d{8})')#?之前的分组表示是可选的分组,如果需要匹配真正的?,就使用转义字符\?
>>>text=regex.search('Myphonenumberis032-23847533')
>>>text.group()
'032-23847533'
>>>text=regex.search('Myphonenumberis23847533')
>>>text.group()
'23847533'
>>>regex=re.compile(r'(Py){3,5}')#Python默认是贪心,尽可能匹配最长的字符串
>>>text=regex.search('PyPyPyPyPy')
>>>text.group()
'PyPyPyPyPy'
>>>regex=re.compile(r'(Py){3,5}?')#?声明非贪心,尽可能匹配最短的字符串
>>>text=regex.search('PyPyPyPyPy')
>>>text.group()
'PyPyPy'
其它正则规则可自行测试。下面是 Python 正则表达式的常用方法:
#这里测试findall()以及sub()#findall()
>>>regex=re.compile(r'0\d{2}-\d{8}0\d{3}-\d{7}')
>>>regex.findall('Cell:021-38294729,Work:0413-3243243')
['021-38294729','0413-3243243']
>>>regex=re.compile(r'Hello\w+')
>>>regex.sub('HelloPython','falkdjfskHellocsldfjlksdjHellojavasdfsj')
'falkdjfskHelloPythonsldfjlksdjHelloPythonsdfsj'
相信通过以上的三段代码,小伙伴们已经初步体会re结合正则表达式的运用了,看不懂的小伙伴多试几遍哦~更多Python学习推荐:PyThon学习网教学中心。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。