正则表达式的基本规则
普通字符组 []
[] 普通字符组 [abc] 匹配一个字符 a或者b或者c
- 范围表示法 [a-z] 匹配一个字符 a到z中的
排除型字符组 [^]
[^abc] 匹配一个字符是除a b c 之外的所有字符
[^0-9] 匹配一个除了0到9字符之外的所有字符
字符组简记法
\d 包含所有数字字符 相当于 [0-9]
\w 包含所有单词字符 相当于 [0-9a-zA-z_] 注意还会匹配 _ 下划线
\s 包含所有空白字符 相当于 有制表符\t 回车符 \r 换行符 \n等各种"空白字符"
\D \W \S 分别是 \d \w \s 的排除字符组
[\s\S] [\d\D] [\w\W] 都能表示匹配所有字符
\b 单词边界 \b[a-zA-Z]\b 匹配所有的单词
\B 非单词边界 匹配单词之间的字符
元字符转义
- 的转义 [-ab] [a\-b] 匹配 - a b 三个字符
使用原生字符串不需要考虑转义 r"hello world" python
^ 定位到字符串的起始位置
$ 定位到字符串的结束位置 这两个特殊字符能保证整个string都可以由pattern匹配时才算成功。
使用
re.search(r"^abc$", "abc") != None #=>True re.search(r"^abc$", "abcd") != None #=> False
匹配成功时,整个字符串都是abc
量词
{n} 之前的元素必须出现n次
{m,n} 之前的元素最少出现m次,最多出现n次
{m,} 之前的元素最少出现m次ÿ