re模块
r'str' r表示元字符串 re.I 表示忽略大小写
import repa1 = re.compile(r'n',re.I)ma1 = pa1.match('name')ma1.group()ma2 = re.match(r'n','name')
基本语法:
.匹配任意字符串(除了\n)
[...]匹配字符集
\d / \D 匹配数字/非数字
\s / \S匹配空白/非空白字符
\w / \W匹配单词字符[a-zA-Z0-9]/非单词字符
*匹配前一个字符0次或者无限次
+匹配前一个字符1次或者无限次
?匹配前一个字符0次或一次
{m} /{m,n}匹配前一个字符m次或m到 n次
*? /+? /?? 匹配模式变为非贪婪
^匹配字符串开头
$匹配字符串结尾
\A / \Z指定的字符串必须出现在开头/结尾
分组匹配:
| 匹配左右任意一个表达式
(ab)括号内表达式作为一个分组
\<number>引用编号为num的分组匹配到的字符串
(?P<name>)分组起一个别名
( ?P=name)引用别名为name的分组匹配字符串
re模块方法
serch(pattern, string, flags=0)查找匹配
findall(pattern, string, flags=0)找到匹配,返回所有匹配的列表
sub(pattern,repl, string, count=0, flags=0)将字符串中匹配中匹配正则表达式的部分替换为其他值
repl可以是字符串也可以是一个函数。
split (pattern, string, maxsplit=0, flags=0)根据匹配分割字符串,返回分割字符串组成的列表