正则表达式基础知识
通配符 | 含义 |
---|
. | 任一字符,不包括\n (re.S可以让.匹配\n) |
\d | 单个数字 |
\D | 非数字 |
\w | 单个单词 |
\W | 单个非单词 |
\s | 空白,包括tab |
\S | 非空白 |
[1~9] | 匹配范围内单个字符 |
[^1-9] | 非1-9 |
n{3} | 3个n |
n{1,4} | 1~4个n |
? | 一个或没有 |
+ | 一个或多个 |
* | 可有可无可多个 |
^ | 开头 |
$ | 结尾 |
() | 分组,编号从1开始 |
(?P<name> abc ) | 分组取名 |
| | 或者 |
常用正则表达式
正则表达式 | 描述 | 示例 |
---|
\d+(.\d*)? | 任意整数和浮点数 | 5.21 |
^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$ | 电子邮件 | text@163.com |
^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$ | url | http://baidu.com/ |
^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$ | 身份证 | 321281199712117777 |
re模块
match(pattern, string) 匹配正则。如果匹配成功,返回匹配对象,否则返回None
search(pattern, string) 匹配第一次出现的正则。如果匹配成功,则返回匹配对象,否则返回None
findall(pattern, string) 查找字符串中所有出现的正则,并返回一个匹配列表
finditer(pattern, string) 与findall()相同,但返回的是一个迭代器。对于每一次匹配,迭代器都能返回一个匹配对象
split(pattern, string, max=10) 以匹配到的正则为分割符,将字符串分割为列表,返回匹配列表,分割最多操作max次
re.sub(pattern, “str1”, “str2”) 在str2中将所有匹配项替换成str1;返回新的str2
group(num = 0) 返回整个匹配对象,或者编号为num的特定子组