正则表达式库re

import re#倒入正则表达式库


# . 的使用举例
a='xz123'
b=re.findall('x.',a)#点 . 只是一个占位符,若只有一个 .(点)则输出x与其后面的一个字符, 若有两个 .(点)则输出x与其后面的两个字符,以此类推
c=re.findall('x..',a)
d=re.findall('x...',a)
print(b)#结果:['xz']
print(c)#结果:['xz1']
print(d)#结果:['xz12']


# *的使用举例
a='xyxyx123'
b=re.findall('x*',a)# * 将匹配字符串a中所有的x
print(b)#结果:['x', '', 'x', '', 'x', '', '', '', '']

#  ?的使用举例
a='xyx12x3'
b=re.findall('x?',a)
print(b)#结果:['x', '', 'x', '', '', 'x', '', '']


#上面内容只需了解,需要掌握的只有下面一种组合方式(.*?)
# .* 的使用举例
a='hahddsefdsfdxxIxxdddkdojgxxlovexxjdjdjdxxyouxxdfeff'
b=re.findall('xx.*xx',a)
print(b) #结果为:['xxIxxdddkdojgxxlovexxjdjdjdxxyouxx']

# .*? 的使用举例
c=re.findall('xx.*?xx',a)
print(c)#结果为:['xxIxx', 'xxlovexx', 'xxyouxx']

# 使用括号与不使用的区别
d=re.findall('xx(.*?)xx',a)#用括号包围2我们所需要的内容,因此输出的就是xx与xx之间的内容
print(d) #结果为:['I', 'love', 'you']



#s='''hahddsefdsfdxxIxxddd
#kdojgxxlovexxjdjdjdxxyouxxdfeff'''
#t=re.findall('xx(.*?)xx',s)
#print(t)



#findall与search的区别
s2='hahddsefdsfdxxIxxdddkdojgxxlovexxjdjdjdxxyouxxdfeff'
f=re.search('xx(.*?)xxdddkdojgxx(.*?)xx',s2).group(2)#有几个括号则将找出几个符合条件的内容,并用.group()来输出符合内容的值
f1=re.search('xx(.*?)xxdddkdojgxx(.*?)xx',s2).group(1)
print(f)#结果为:love
print(f1)#结果为:I
f2=re.findall('xx(.*?)xxdddkdojgxx(.*?)xx',s2)#这样使用findall将会找出括号个数的符合内容的值,并生成一个元组,且将这个元组储存在列表中
print(f2[0][1])#结果为:love
print(f2[0][0])#结果为:I
#sub的使用举例
ss='123rrrr123'
pp=re.sub('123(.*?)123','123%d123'%789,ss)#sub是进行替换,将括号中的内容用%d替换,当然%d所指的是%789
print(pp)#结果为:123789123
上一篇:2020-12-07


下一篇:Python3 re正则的基本使用方法