返回介绍

7.6 字符分类

发布于 2024-01-22 21:44:06 字数 1192 浏览 0 评论 0 收藏 0

在前面电话号码正则表达式的例子中,你知道\d 可以代表任何数字。也就是说,\d是正则表达式(0|1|2|3|4|5|6|7|8|9)的缩写。有许多这样的“缩写字符分类”,如表7-1所示。

表7-1 常用字符分类的缩写代码

缩写字符分类

表示

\d

0到9的任何数字

\D

除0到9的数字以外的任何字符

\w

任何字母、数字或下划线字符(可以认为是匹配“单词”字符)

\W

除字母、数字和下划线以外的任何字符

\s

空格、制表符或换行符(可以认为是匹配“空白”字符)

\S

除空格、制表符和换行符以外的任何字符

字符分类对于缩短正则表达式很有用。字符分类[0-5]只匹配数字0到5,这比输入(0|1|2|3|4|5)要短很多。

例如,在交互式环境中输入以下代码:

>>> xmasRegex = re.compile(r'\d+\s\w+')
>>> xmasRegex.findall('12 drummers, 11 pipers, 10 lords, 9 ladies, 8 maids, 7
swans, 6 geese, 5 rings, 4 birds, 3 hens, 2 doves, 1 partridge')
['12 drummers', '11 pipers', '10 lords', '9 ladies', '8 maids', '7 swans', '6
geese', '5 rings', '4 birds', '3 hens', '2 doves', '1 partridge']

正则表达式\d+\s\w+匹配的文本有一个或多个数字(\d+),接下来是一个空白字符(\s),接下来是一个或多个字母/数字/下划线字符(\w+)。findall()方法将返回所有匹配该正则表达式的字符串,放在一个列表中。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文