2.1 python文本处理-正则表达式

本文详细介绍了Python标准库中的re模块及其方法,包括正则表达式编译、搜索、match、fullmatch的区别,以及正则表达式的基本语法和常见应用场景。通过实例演示了如何使用这些方法处理字符串。

python正则模块介绍

标准库模块 re

模块方法

# 将正则表达式样式编译成一个正则对象。一般用于多次使用正则对象的场景

re.compile(pattern)

# 扫描string字符串并查找符合patten样式的第一个位置,返回对应的 Match 结果,否则返回 None

re.search(patten, string)

# 如果 string 开头的零个或多个字符与正则表达式 pattern 匹配,返回对应的 Match 结果,否则返回 None

re.match(patten, string)

# 整个string余表达式patten样式匹配,返回对应的 Match 结果,否则返回 None

re.fullmatch(patten, string)

match结果指的是返回的Match对象,Match对象的group方法可以取出匹配到的结果

正则表达式语法

^: 指开头

$:指结尾

+:表示匹配一次或多次

?:表示匹配0或1次

*:表示匹配0或任意次

{n}:表示匹配指定次数

{m,}:至少匹配m次

{m, n}:匹配m至n次

.:匹配除‘\n’以外的任意单个字符

\d: 数字

\w:包括下划线的任何单词字符,等价于[a-zA-Z0-9_]

\W:非单词字符

\s:空白字符,包括空格、制表符、换页符等

\b:单词边界,例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er

\B:非单词边界

a|b:匹配a或b

(patten):匹配并获取结果

(?:patten):匹配但不获取结果

(?P<name>patten):匹配并获取结果,并命名为name,便于match.group进行获取查询

示例

compile + search

>>> import re
>>> pattern = "\d+"
>>> obj = re.compile(pattern)
>>> res = obj.search("a12b13c14")
>>> res
<re.Match object; span=(1, 3), match='12'>

match

>>> re.match("\w\d+", "a12b13c14")
<re.Match object; span=(0, 3), match='a12'>

>>> re.match("\d+", "a12b13c14")

None
>>> 

group

>>> res = re.match("(\w+):(\d+)", "bob:3,allen:10")
>>> res.group
<built-in method group of re.Match object at 0x1071b6780>

>>> res.group(0)
'bob:3'
>>> res.group(1)
'bob'
>>> res.group(2)
'3'

常见的正则表达式写法

正则表达式场景
\d{4}-\d{2}-\d{2}形如 YYYY-MM-DD样式的日期格式
^[A-Z][a-z ]+

以大写字母开头,且单词其他部分为小写

[a-zA-Z]匹配英文字母

^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$

email
[\u2E80-\u9FFF]汉字

参考文档

正则表达式手册

re --- 正则表达式操作 — Python 3.12.1 文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值