本文主要是介绍掉头发第一步之python正则表达式之re模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
python正则表达式之re模块
1.几个关键的函数
- match()函数
import re
a=re.match('op','op123')
if a is not None :print(a.group())
#运行结果:op
import re
a=re.match('op','123op')
if a is not None :print(a.group())
#运行结果:<空>
match()函数试图从字符串中的起始部分开始对模式进行匹配,如果匹配成功,返回一个匹配对象,如果不成功则返回None。
- search()函数
import re
a=re.search('op','123op123op')
if a is not None :print(a.group())
#运行结果:op
search()函数用法与match()函数相同,不同点在于:search函数可以在字符串中的任意位置进行匹配第一次出现的模式。如果匹配成功,返回一个匹配对象,如果不成功则返回None。
- findall()函数
findall函数与search函数运用相同,不同之处在于,findall返回的是一个列表,如果匹配成功,将返回包含所有成功匹配部分的一个列表,如果匹配不成功,则返回一个空列表。
import re
b='^hellow'
a=re.findall('the','the hellow theworld')
print(a)
#['the', 'the']
- sub()函数和subn()函数
sub函数和subn函数都是用某个字符串来替换所匹配的部分,不同点在于subn返回的内容中增加了一个替换次数。
用法:sub(‘匹配的字符串’,‘替换的字符串’,‘操作的字符串’,count=0)count参数是替换的次数。
subn用法相同
import re
s='the hellow theword'
a=re.sub('the','000',s,count=1)
print(a)
# 000 hellow theword
import re
s='the hellow theword'
a=re.subn('[to]','123',s)
print(a)
#('123he hell123w 123hew123rd', 4)
- split()分隔符
re.split()与str.split()基本相同
import re
s='192.168.0.0'
a=re.split('\.',s)#注意转义.
print(a)
#['192', '168', '0', '0']
2.匹配多个字符串
则一匹配符 : |
import re
b='op|pp|oo'
a=re.search(b,'123op123opppoo')
if a is not None :print(a.group())
#运行结果:op
3.匹配单个字符
点号字符: .
import re
b='.p'#注意要匹配真正的点号(.)时,需要加反斜杠 \. 比如:www\.baidu\.com
a=re.search(b,'123op123opppoo')
if a is not None :print(a.group())
#运行结果:op
4.创建字符集
中括号 : [ ]
import re
b='[po][op][123]'
a=re.search(b,'123op123opppoo')
if a is not None :print(a.group())
#运行结果:op1
5.特殊字符以及分组
import re
b='(\w\w\w)-(\d\d\d)'#括号是进行匹配模式的分组
a=re.search(b,'a23-123')
if a is not None :print(a.group())
#运行结果:a23-123
import re
b='(\w\w\w)-(\d\d\d)'
a=re.search(b,'a23-123')
if a is not None :print(a.groups())
#运行结果:('a23', '123')
import re
b='(\w\w\w)-(\d\d\d)'
a=re.search(b,'a23-123')
if a is not None :print(a.group(1))
#运行结果:a23
#group(2)则运行结果为123
6.字符串起始和结束的匹配
起始位置符:^
结束位置符:$
边界位置符:\b
import re
b='^hellow'
a=re.search(b,'hellow world ')
if a is not None :print(a.group())
#运行结果: hellow
import re
b='^hellow'
a=re.search(b,' world hellow')
if a is not None :print(a.group())
#运行结果:<空>
边界匹配(直接上代码)
#要匹配的字符如果在单词开头或者是一个单独的单词,那么可以匹配成功,如果在单词结尾,不能匹配成功,(这里单词间用空格隔开)
import re
b='^hellow'
a=re.search(r'\bthe','hellow the world')#r是防止\b进行转义
if a is not None :print(a.group())
# the
import re
b='^hellow'
a=re.search(r'\bthe','hellow worldthe')
if a is not None :print(a.group())
#<空 >
import re
b='^hellow'
a=re.search(r'\bthe','hellow theworld')
if a is not None :print(a.group())
# the
这只是python正则表达式的一小点内容,还有很多更加复杂且实用的正则表达式等着我们去研究学习。
这篇关于掉头发第一步之python正则表达式之re模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!