Dive into python第七章正则表达式学习笔记

本文深入浅出地介绍了正则表达式的概念及其在字符串操作中的应用,包括使用正则表达式解决复杂的字符串匹配问题,如解析罗马数字。文章还详细解释了正则表达式的元字符规则,并通过实例展示了如何利用正则表达式进行分组和匹配。

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

这一章讲正则表达式比较浅显,想更加大致了解RE,可以看这个网站 http://www.jb51.net/tools/zhengze.html

1. 一般的字符串操作有 index(), count(), find(),replace(),split()函数,复杂的内容则需要正则表达式。

2. re.search(pattern, 'string', re.VERBOSE) 可以给正则表达式添加注释。此种表达方法将忽略空格和注释。

>>> pattern = """
^<span style="white-space:pre">		</span># beginning of string
 M{0,4} <span style="white-space:pre">	</span># thousands − 0 to 4 M's
(CM|CD|D?C{0,3}) # hundreds − 900 (CM), 400 (CD), 0−300 (0 to 3 C's),
<span style="white-space:pre">		</span># 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),
<span style="white-space:pre">		</span># 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),
<span style="white-space:pre">		</span># or 5−8 (V, followed by 0 to 3 I's)
$<span style="white-space:pre">		</span># end of string
"""


3. 罗马数字的I,X,C,M只能重复三次,这要就规定了一些表示的规则, 4只能是IV,不能是IIII。

4. re.search(pattern,'string') 将返回匹配的object, 也可以先将pattern编译,然后对string做search:

>>> phonePattern = re.compile(r'^(\d{3})−(\d{3})−(\d{4})$')  #()是re的分组
>>> phonePattern.search('800−555−1212').groups()             # groups()显示分组,返回tuple 
('800', '555', '1212')

5.一些正则规则:

表1.常用的元字符
代码 说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

详见地址:http://www.jb51.net/tools/zhengze.html





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值