Python 正则表达式

本文介绍了Python中的正则表达式及其re模块,详细讲解了match、search和findall三种匹配函数的工作原理以及匹配符号的使用。
摘要由CSDN通过智能技术生成

1.正则表示式属于python中内置函数

       1. 正则表达式包名:re  

                导包代码:import re

        2.正则匹配方法:

                #函数方法(格式):

re.match(pattern, string, flags=0)
pattern匹配的正则表达式
string需要匹配的对象/内容
flags标志值:修饰符  如:可忽略大小写,识别换行符,空格与制表符....
                1.match函数:

                        match:从字符串初始位置进行匹配,只返回一个值;


                          match输出返回方法:
默认返回输出成功返回一个匹配对象,否则返回None
group(num=0)
返回分组对象,默认值为0返回全部

               示例:

# 导包
import re

# 正常从第一个字符进行匹配可以正常输出
print(re.match('Ha', 'Hallo Python'))  # 返回结果:<re.Match object; span=(0, 2), match='Ha'>
# 匹配第二个字符的数据
print(re.match('a', 'Hallo Python'))  # 返回结果:None

print(re.match('H(.*)P(.*)', 'Hallo Python').group())  # 返回结果:Hallo Python
print(re.match('H(.*)P(.*)', 'Hallo Python').group(1))  # 返回结果:allo 
print(re.match('H(.*)P(.*)', 'Hallo Python').group(2))  # 返回结果:ython
        2.search函数:

                search:从字符串任意位置进行匹配,只返回一个值;

search输出返回方法:
默认返回输出成功返回一个匹配对象,否则返回None
group(num=0)
返回分组对象,默认值为0返回全部        

# 导包
import re

# 正常从第一个字符进行匹配可以正常输出
print(re.search('ll', 'Hallo Python'))  # <re.Match object; span=(2, 4), match='ll'>


print(re.search('a(.*)P(.*)', 'Hallo Python').group())  # 返回结果:allo Python
print(re.search('a(.*)P(.*)', 'Hallo Python').group(1))  # 返回结果:llo
print(re.search('a(.*)P(.*)', 'Hallo Python').group(2))  # 返回结果:ython
               

                3.findall函数:

                        findall:可从字符串任意位置进行匹配,返回多个值

                        findall输出返回方法:

默认返回值以列表类型返回对应对象
print(re.findall('hallo','hallo python'))#返回结果['hallo']
print(re.findall('python','hallo python'))#返回结果['python']
print(re.findall('(ha)llo (py)thon','hallo python'))#返回多个结果
        3.匹配符号:
正则表达式(符号)解释扩展
.代表任意一个字符 
.+代表1或者多个字符(贪婪模式)贪婪模式:根据闭环的字符,需要匹配字符串最后一个闭环字符后一次性输出打印
.*代表0或者多个字符(贪婪模式)
.+?代表1或者多个字符(非贪婪模式)非贪婪模式:根据闭环的字符,匹配字符串每匹配一次闭环字符就会打印输出一次
.*?代表0或者多个字符(非贪婪模式)
[]代表单个字符可输入范围0到9:[0-9]
a到z,A到Z:[a-zA-Z] 注意:区分带小写
[...]:三个一组的任意字符
[^内容]:除什么以外的字符
{}代表字符的出现次数{x}:匹配字符需要出现x次
{x,}:匹配字符至少出现x次
{x,y}:匹配字符最少出现x次,最多出现y次
()代表输出范围or分组输出or只显示输出范围(xy):匹配分组,xy内容成为一组数据,自动生成一个从1开始的编号
(x|y):匹配分组,x或者y是分组数据
^代表以什么开头 
$代表以什么结尾 
\d代表一个数字匹配一个数字字符。等价于 [0-9]
\D代表一个非数字匹配一个非数字字符。等价于 [^0-9]。
\s代表一个空格(空格,换行符,制表符)匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S代表一个非空格匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\w代表一个字符串(下划线除外)匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W代表一个非字符串(特殊字符)匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
re修饰符 - 可选标志(正则方法最后一个参数)re.I: 不区分大小写
re.S :可匹配当\n 换行符
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值