博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
说说 Python 正则表达式中的那些字符类别码
阅读量:1903 次
发布时间:2019-04-26

本文共 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’, ‘.’, ’ ', ‘体’, ‘育’, ‘:’]

转载地址:http://crbcf.baihongyu.com/

你可能感兴趣的文章
启发函数heuristic 与 A*
查看>>
Image Pyramid(图像金字塔)
查看>>
Oracle 作业记录
查看>>
putty连接AWS配置(multimedia project)
查看>>
Hourglass Network 沙漏网络 (pose estimation姿态估计)
查看>>
OpenCV实战(二)——答题卡识别判卷
查看>>
目标检测神经网络的发展历程(52 个目标检测模型)
查看>>
Boundary loss 损失函数
查看>>
神经网络调参实战(一)—— 训练更多次数 & tensorboard & finetune
查看>>
tensorflow使用tensorboard进行可视化
查看>>
神经网络调参实战(二)—— activation & initializer & optimizer
查看>>
凸优化 convex optimization
查看>>
数据库索引 & 为什么要对数据库建立索引 / 数据库建立索引为什么会加快查询速度
查看>>
IEEE与APA引用格式
查看>>
research gap
查看>>
pytorch训练cifar10数据集查看各个种类图片的准确率
查看>>
Python鼠标点击图片,获取点击点的像素坐标
查看>>
路径规划(一) —— 环境描述(Grid Map & Feature Map) & 全局路径规划(最优路径规划(Dijkstra&A*star) & 概率路径规划(PRM&RRT))
查看>>
神经网络调参实战(四)—— 加深网络层次 & 批归一化 batch normalization
查看>>
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(1)—— 假设检验(μ&卡方检验&方差检验(F检验))&相关系数(皮尔逊&斯皮尔曼)
查看>>