详解python中的正则表达式

本文详细介绍了Python中的正则表达式,包括元字符如点、方括号、插入符、美元符、反斜杠和竖线的用法,以及重复、贪婪匹配、组选择等特性。通过实例演示了如何使用正则表达式进行字符串匹配和切割。
摘要由CSDN通过智能技术生成

Python正则表达式

  • 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
  • re 模块使 Python 语言拥有全部的正则表达式功能。
  • compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
  • re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

正则表达式元字符

.(点)
  • 点是匹配除换行符以外的任何单个字符

例子:

content = '''
苹果,是绿色的
橙子,是橙色的
草莓,是红色的
乌鸦,是黑色的
'''

import re

p = re.compile(r'.色')
for one in p.findall(content):
    print(one)

图形化正则:
在这里插入图片描述
运行结果(我这里字符编码出了些问题…):
在这里插入图片描述

[](方括号)
  • 常用来指定一个字符集,例如:[abc]或[a-z]
  • 元字符在字符集中不起作用,例如:[asd$]
  • 补集匹配不在区间范围内的字符,例如:[^5]

写了这些理论,不如来一个例子体会一下这个[]元字符是什么效果:

content = '''
苹果,是绿色的
橙子,是橙色的
草莓,是红色的
乌鸦,是黑色的
'''

import re

p = re.compile(r'[绿橙红黑]色')
for one in p.findall(content):
    print(one)

图形化正则:
在这里插入图片描述
运行结果:
在这里插入图片描述
它还可以这样玩:

content = '''
小李,156888z7894,21
小张,18866716789,23
小王,13512342233,26
小崔,y3552342133,18
小刘,g3510348233,35
小唐,a3211232243,42
'''

import re

p = re.compile(r'[a-z]\d{10}')

for one in p.findall(content):
    print(one)

图形化正则:
在这里插入图片描述运行结果:
在这里插入图片描述
如果在方括号中使用 ^ , 表示 非 方括号里面的字符集合,例如:

content = 'a1b2c3d4e5'

import re
p = re.compile(r'[^\d]' )
for one in  p.findall(content):
    print(one)

图形化正则:
在这里插入图片描述
运行结果:
在这里插入图片描述

^(插入符)
  • 匹配行首,除非设置MULTILINE标志,他只是匹配字符串的开始。
  • 在MULTILINE模式里,它也可以匹配每个字符串中的换行

正则表达式可以设定 单行模式 和 多行模式

如果是 多行模式 ,表示匹配 文本每行 的开头位置。
如果是 单行模式 ,表示匹配 整个文本 的开头位置。
比如,下面的文本中,每行最前面的数字表示水果的编号,最后的数字表示价格
001-苹果价格-60002-橙子价格-70,
003-香蕉价格-80,

例子:

content = '''
001-苹果价格-60,
002-橙子价格-70,
003-香蕉价格-80,
'''

import re
p = re.compile(r'^\d+',re.M )
for one in  p.findall(content):
    print(one)

图形化正则:
在这里插入图片描述
运行结果可以看到,^只匹配行

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值