正则表达式基础
Python的正则表达式依赖于re模块:1
import re
基本结构为:
string –> Pattern –> Match –>result
简单示例:
1 | import re |
另一个基本示例:
1 | import re |
正则表达式语法(匹配单个字符):
字符 | 匹配 | 示例 |
---|---|---|
. | 匹配任意字符(除\n外) | re.match(r’.’,’d’) |
[…] | 匹配字符集 | re.match(r’[a-zA-Z0-9]’,’d’) |
\d / \D | 匹配数字 / 非数字 | re.match(r’\d’, ‘0’) |
\s / \S | 匹配空白 / 非空白字符 | re.match(r’\s’, ‘ ‘) |
\w / \W | 匹配单词字符[a-zA-Z0-9] / 非单词字符 | re.match(r’\w’, ‘d’) |
正则表达式语法(匹配多个字符):
字符 | 匹配 | 示例 |
---|---|---|
* | 匹配前一个字符0到无限次 | re.match(r’[A-Z][a-z]*’, ‘Dlala123’) |
+ | 匹配前一个字符1到无限次 | ma = re.match(r’[_a-zA-Z]+[\w]*’, ‘_Dlala123’) |
? | 匹配前一个字符0次或1次 | ma = re.match(r’[1-9]?[0-9]*’,’76’) |
{m} / {m,n} | 匹配一个字符m次 / m到n次 | ma = re.match(r’[0-9A-Za-z]{6,9}@mail.com’, ‘dwk715@mail.com’) |
*? / +? / ?? | 匹配模式变为非贪婪(尽可能减少匹配字符) | 0次,1次,0次 |
Python re模块
re模块有很多个方法,下面介绍一下:
search(pattern, string, flags=0)
在一个字符串中查找匹配
类似于字符串的find
1 | import re |
findall(pattern, string, flags=0)
找到匹配,返回所有匹配部分的列表
1 | import re |
1 | sub(pattern, repl. string, count=0, flags=0) |
将字符串中匹配正则表达式的部分替换为其他值
1 | import re |
1 | import re |
1 | split(pattern, string, maxsplit=0, flags=0) |
1 | import re |