写在前面
- 面试字节跳动网络运维岗时,发现这个岗位会对网络设备进行返回数据处理,这些数据看上去是表格形式的数据格式长相,实际的数据类型是一串字符串。
- 这个岗位很青睐Python来处理数据,我也自然想到了正则表达式的处理方式,但奈何我以前用Python只做硬件控制和图像处理,很少对大量相似性数据做处理,现在就来学学正则表达式吧。
正则表达式元字符
- ".":任意字符
- "r''":r后面的单引号里的正则表达式为原生字符
- "*":表示匹配前面的任意字符任意次,包括0次
- "+":表示匹配前面的任意字符任意次,不包括0次
- "{}":表示匹配前面的字符指定次,
- "\d":匹配任意数字
- "\D":匹配任意非数字
- "\s":匹配任意一个空白字符,空格、tab、换行等
- "\S":匹配任意一个非空白字符
- "\w":匹配任意一个文字字符,大小写,数字,下划线,甚至包括unicode里的中文字符。
- "\W":匹配任意一个非文字字符
- "[]":
- 实例:
- [a-z]:匹配a-z范围内的所以英文小写字符
- [1-9]:匹配1-9范围内的所有数字
- [\S]:匹配所有空白字符
- [,]:匹配所有英文逗号
- [.]:匹配所有英文句号
- 实例:
- "[^\d]":^就是取反,[\d]是取数字,前面加个^就是非数字
- "^"
- 单行模式下,匹配整个文本的第一行起始位置
- 多行模式下,匹配整个文本的每一行起始位置
- "$"
- 单行模式下,匹配整个文本的最后一行结束位置
- 多行模式下,匹配整个文本的每一行结束位置
-
"()":分组,Python.re.compile模块一般只返回()中的list,如果有多个(),那么每个组的第n个元素会共同构成一个tuple元组(元组和列表是有序的,字典是无序的)
-
贪婪模式元字符:+ * 非贪婪模式元字符:?
-
Python正则表达式中,缺省情况下就是单行模式,可以使用re.MULTILINE改为多行模式
-
Python正则表达式在线验证工具网址:https://regex101.com
Comments NOTHING