python进阶——正则表达式
1.正则表达式
1.1使用&功能
利用re模块
匹配字符串
1.2函数
re.match(pattern,string,flags=0)
//从起始位置开始匹配,如果不是起始位置匹配到就返回none
-
pattern //正则
-
string //匹配的字符串
-
flags //修饰符
group(num=0)
//匹配整个表达式的字符串,返回下标对应元组
groups()
//返回包含所有的元组
re.search
//返回第一个匹配成功的,值同上
re.sub(pattern,repl,string,count=0,flags)
//替换
-
pattern //正则
-
repl //替换后内容
-
string //替换前的内容
-
count //替换最大次数,默认0
re.compile(pattern[,flags])
//生成正则表达对象(pattern),提供给其他函数
-
pattern //正则
-
flags //匹配模式
匹配模式:
-
l //忽略大小写
-
L //特殊字符集,依赖于当前环境
-
M //多行模式
-
S //包括换行符再内的任意字符
-
U //特殊字符集,依赖于Unicode
-
X //忽略空格和注释
findall(string[,pos[,endpos]])
//查找所有并返回列表,多个模式则返回元组列表
-
string //字符串
-
pos //指定起始位置,默认为0
-
endpos //结束位置,默认为字符串长度
re.finditer(pattern,string,flags)
//查找所有并作为迭代器返回
re.split(pattern,string[,maxsplit,flags])
//将匹配到的内容分割后返回列表
-
maxsplit //分割次数,默认为0
1.3语法
语法 | 描述 |
---|---|
^ | 匹配字符串的开头 |
$ | 匹配字符串的末尾 |
. | 匹配任意字符,除了换行符 |
[...] | 用来表示一组字符 |
* | 匹配0个或多个的表达式 |
+ | 匹配1个或多个的表达式 |
? | 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 |
{ n} | 精确匹配 n 个前面表达式 |
{ n,} | 匹配 n 个前面表达式 |
{ n, m} | 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 |
a|b | 匹配a或b |
() | 匹配的内容 |
(?#) | 注释 |
\w | 匹配字母数字及下划线 |
\W | 匹配非字母数字及下划线 |
\s | 匹配任意空白字符 |
\S | 匹配任意非空字符 |
\d | 匹配任意数字 |
\D | 匹配任意非数字 |
\A | 匹配字符串开始 |
\Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 |
\z | 匹配字符串结束 |
\G | 匹配最后匹配完成的位置 |
\b | 匹配一个单词边界,也就是指单词和空格间的位置 |
\B | 匹配非单词边界 |
\n, \t, 等 | 匹配一个换行符 |