正则表达式,简称为regex,是文本模式的描述方法
- ?匹配零次或一次前面的分组
- *匹配零次或多次前面的分组
- +匹配一次或多次前面的分组
- {n}匹配n次前面的分组
- {n,}匹配n次或更多前面的分组
- {,m}匹配零次到m次前面的分组
- {n,m}匹配至少n次、至多m次前面的分组
- {n,m}?或*?或+?对前面的分组进行非贪心匹配
- ^spam意味着字符串必须以spam开始
- spam$意味着字符串必须以spam结束
- .匹配所有字符,换行符除外
- \d、\w和\s分别匹配数字、单词和空格
- \D、\W和\S分别匹配除数字、单词和空格外的所有字符
- [abc]匹配方括号内的任意字符(诸如a、b或c)
- [^abc]匹配不再方括号内的任意字符
python正则表达式默认是“贪心”的,这表示在有二义的情况下,它们会尽可能匹配最长的字符串
花括号的“非贪心”版本匹配尽可能最短的字符串,即在花括号后跟着一个问号 -- {}?
缩写字符分类 | 表示 |
\d | 0到9的任何数字 |
\D | 除0到9的数字意外的任何字符 |
\w | 任何字母、数字或下划线字符(可以认为是匹配“单词”字符) |
\W | 除字母、数字和下划线意外的任何字符 |
\s | 空格、制表符或换行符(可以认为是匹配“空白”字符) |
\S | 除空格、制表符和换仿佛意外的任何字符 |
re.compile()的第二个参数:
- re.IGNORECASE 忽略大小写
- re.VERBOSE 忽略空白符和注释
- re.DOTALL .匹配换行符
可以使用 | 组合上述参数
someRegexValue = re.compile('foo', re.IGNORECASE | re.DOTALL | re.VERBOSE)