zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Python基础学习 -- 正则表达式

2023-03-14 22:45:25 时间

一、正则表达常用符号

1、“.”:除换行以外的所有字符
2、“[]”:匹配中括号任意个字符
3、“d”:匹配数字
4、“*”:0次或多次
5、“+”:至少1次
6、“?”:0次或1次
7、“{m}”:固定m次
8、“{m,}”:至少m次
9、“{m,n}”:m到n次
10、“$”:以什么结尾
11、“^”:以什么开头
12、“()”:不匹配前后指定的内容

二、正则应用


findall返回的是一个列表


d匹配到任意数字就返回

import re
str='asdf23fggerg3435mmk3kmo5324'
a=re.findall('d',str)
print(a)
运行结果:
['2', '3', '3', '4', '3', '5', '3', '5', '3', '2', '4']

d+匹配到不是数字就返回

import re
str='asdf23fggerg3435mmk3kmo5324'
a=re.findall('d+',str)
print(a)
运行结果:
['23', '3435', '3', '5324']

d*匹配不到返回空,连续匹配到数字

import re
str='asdf23fggerg3435mmk3kmo5324'
a=re.findall('d*',str)
print(a)
运行结果:
['', '', '', '', '23', '', '', '', '', '', '', '3435', '', '', '', '3', '', '', '', '5324', '']

d?匹配不到返回空,只匹配一个数字

import re
str='asdf23fggerg3435mmk3kmo5324'
a=re.findall('d?',str)
print(a)
运行结果:
['', '', '', '', '2', '3', '', '', '', '', '', '', '3', '4', '3', '5', '', '', '', '3', '', '', '', '5', '3', '2', '4', '']

匹配字母g和字母m之间


(.*)和(.*?)的区别就是,带“?”的匹配到一次就结束,不带“?”匹配不到为止才返回


import re
str='asdf23fggerg3435mmk3kmo5324'
a=re.findall('g(.*)m',str)
print(a)
运行结果:
['gerg3435mmk3k']
运行结果:
['gerg3435']

匹配3位或者4位的数值

import re
str='asdf23fgg123erg3435mmk3km987o5324'
a=re.findall('d{3,4}',str)
print(a)
运行结果:
['123', '3435', '987', '5324']

只匹配列表里面的数据

import re
str='asdf23fgg123erg3435mmk3km987o5324'
a=re.findall('[g,1,3]',str)
print(a)