正则表达式
处理字符串的利器
- 选用:
- 想查看原字符串是否匹配 ->match,fullmatch,search
- 想从大字符串中提取指定的子字符串 ——> findall,finditer
- 格式:函数(正则表达式,字符串)
- 核心:正则表达式整体就是一个具有某一特定规则的字符串,主要是要将想要拿的数据的特定规则写出来
- 切割和替换:split,sub
一、匹配
匹配核心规则:判断后面的字符,是否符合正则表达式描述的规则,符合返回:匹配的字符,不符合返回:None
1. 正则表达式语法
1. 匹配类符号
以下都是针对一个字符的格式判断
- 普通符号: – 在正则表达式中表示本身的符号
- str1 = ‘abc’
- result = fullmatch(r’abc’,str1)
- 除了特殊符号,就是普通字符
- . : – 表示匹配任意一个字符
- result = fullmatch(r’a.c’,str1)
- 任意字符,注重要求长度或占位情况
- \d : – 匹配任意一个数字字符
- result = fullmatch(r’a\dc’,‘123’)
- \s : – 匹配任意一个空白字符:例如:空格、换行、水平制表符
- \D : – 匹配任意一个非数字字符
- \S : – 匹配任意一个非空白字符
- \w : – 匹配字母数字下划线,等价于[a-zA-Z0-9_]
- \W : – 匹配非数字字母下划线的字符
- [字符集]: – 匹配字符集中的任意一个字符(最常用)
- 规范:可以连在一起写,合并为一个区间,判断该一个字符在不在这个区间
- 写多个其中一个,eg:[abc],字符集中不用写引号
- 有特殊字符,eg:[abc\d],匹配任意一个数字或者a/b/c
- 区间,小的放前面,大小按照编码值来确定eg:[1-9],[3-9],[a-z],[A-Z],[\u4e00-\u9fa5],[1-9abcA-Z],[1-9a-zA-Z]
- 如果减号两边没有字符,那就是普通字符‘-’
- '-'号只有在[]里的,且在两个字符中间的时候,有特殊功能表示区间
- [^字符集]: – 不在字符集中的任