Dive in Python学习笔记七:正则表达式

本文详细介绍了Python中正则表达式的应用,包括搜索函数的使用、松散正则表达式的概念及其在解析复杂字符串时的优势。通过实例演示了如何灵活运用正则表达式解决实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Python中,所有和正则表达式相关的功能都包含在re模块中。
search函数,有两个参数,一个是正则表达式,一个是字符串,函数试图匹配正则表达式。如果发现一个匹配,search 函数返回一个拥有多种方法可以描述这个匹配的对象,如果没有发现匹配,search 函数返回一个 None,一个 Python 空值 (null value)。
>>> import re
>>> pattern = '^M?M?M?$'
>>> re.search(pattern, 'M')
<_sre sre_match="" object="" at="" 0x02340e90="">
>>> re.search(pattern, 'MMM')
<_sre sre_match="" object="" at="" 0x02340fa8="">
>>> re.search(pattern, 'MMMM')
>>>
说明:正则表达式的语法查看dir(re)

松散正则表达式
一个松散正则表达式和一个紧凑正则表达式主要区别表现在两个方面:
(1) 忽略空白符。空格符,制表符,回车符不匹配它们自身,它们根本不参与匹配。
(2) 忽略注释。
示例如下:
>>> pattern = """
^ # beginning of string
M{0,3} # thousands - 0 to 3 M's
(CM|CD|D?C{0,3}) # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 C's),
# or 500-800 (D, followed by 0 to 3 C's)
(XC|XL|L?X{0,3}) # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 X's),
# or 50-80 (L, followed by 0 to 3 X's)
(IX|IV|V?I{0,3}) # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 I's),
# or 5-8 (V, followed by 0 to 3 I's)
$ # end of string
"""
>>> re.search(pattern, 'M', re.VERBOSE)
<_sre sre_match="" ob="" ject="" at="" 0x008eeb48="">
说明:当使用松散正则表达式时,最重要的一件事情就是:必须传递一个额外的参数 re.VERBOSE,该参数是定义在 re 模块中的一个常量,标志着待匹配的正则表达式是一个松散正则表达式。Python 默认每一个正则表达式都是紧凑类型的,除非你显式地标明一个正则表达式为松散类型。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值