说说 Python 正则表达式中的那些字符类别码
发布日期:2021-06-29 21:02:36 浏览次数:2 分类:技术文章

本文共 963 字,大约阅读时间需要 3 分钟。

字符类别码 说明
\d 0 到 9 之间的任意数字,d 是 digit 的缩写。
\D 0 到 9 的数字以外的任意字符。
\w 任意字母、数字或下划线字符,w 是 word 的缩写。
\W 字母、数字和下划线以外的任意字符。
\s 空格、制表符或换行符,s 是 space 的缩写。
\S 空格、制表符和换行符以外的任意字符。

比如 \d 就是正则表达式 (0|1|2|3|4|5|6|7|8|9) 的缩写,使用它可以大大缩短正则表达式的长度。

data_regex=re.compile(r'\d+\.\s[\u4E00-\u9FA5]+')print(data_regex.findall('1. 科技:xxx,2. 娱乐:xxx,3. 体育:xxx'))

运行结果:

[‘1. 科技’, ‘2. 娱乐’, ‘3. 体育’]

正则表达式 \d+\.\s[\u4E00-\u9FA5]+中的 \d+ 表示一个或多个 0 到 9 之间的任意数字;接着是一个 . ,因为这个点是特殊字符,所以在之前加了转义符;然后是 \s 表示空格、制表符或换行符;最后是 [\u4E00-\u9FA5]+ 表示一个或多个中文字符。

也可以使用方括号来自定义字符集。例如, 下例中的字符集 [1x] 将匹配所有的 1 与 x:

custom_regex=re.compile(r'[1x]')print(custom_regex.findall('1. 科技:xxx,2. 娱乐:xxx,3. 体育:xxx'))

注意: 在方括号内的普通正则表达式符号(比如 .、*、? 或 () 字符)不会被解释。因此,我们不需要对其进行转义。

在自定义字符集的左边中括号之后加一个插入字符( ^), 就可以得到相反结果,即不是自定义字符集中的字符,会被匹配出来:

custom_regex=re.compile(r'[^1x]')print(custom_regex.findall('1. 科技:xxx,2. 娱乐:xxx,3. 体育:xxx'))

运行结果:

[’.’, ’ ', ‘科’, ‘技’, ‘:’, ‘,’, ‘2’, ‘.’, ’ ', ‘娱’, ‘乐’, ‘:’, ‘,’, ‘3’, ‘.’, ’ ', ‘体’, ‘育’, ‘:’]

转载地址:https://deniro.blog.csdn.net/article/details/103541122 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:说说 Spring Boot 的条件化注解
下一篇:说说在 Python 中,如何找出所有字符串匹配

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月05日 07时29分27秒