re模块+面向对象
Posted mcc61
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re模块+面向对象相关的知识,希望对你有一定的参考价值。
re模块
re:其实就是带有特殊语法的字符串
语法:单个字符和多个字符
单个字符:
d是匹配所有的数字
D是匹配所有的非数字
s是所有的换行符,制表符,空白等,回车符
S是所有费换行符,空白和制表符等
w字母数字下划线
W所有非字母数字下划线
.匹配所有单个字符,(不包括换行符)
多个字符:
+==》{1,n}n是代表所取的个数,是贪婪匹配,能匹配多个就匹配多个
*==》{0,n}n是代表所取的个数,是贪婪匹配,能匹配多个就匹配多个
?==》{0,1}是贪婪匹配,也是能匹配多个就匹配多个
*****************************************************************************************************
+?结合在一起就是非贪婪匹配,是{1,n}但是能不匹配就不匹配,一般结合^$来使用,也是非单个字符匹配
*?结合在一起就是非贪婪匹配,是{0.1},也是要结合^$在一起使用,非单个字符是没有意义的
.+:所有的匹配,除了换行符,贪婪匹配,最少匹配要看匹配前面的匹配对象
.*:所有的匹配,除了换行符,但是是从0开始,最少匹配是空格
.+?:是非贪婪匹配
.*?:也是非贪婪匹配,匹配多少还是要看匹配前面的匹配对象
####所谓的贪婪非贪婪指的是要匹配的字符,+?这个是前面的必须全部匹配,可以不取后面的 *?是可以将前面要匹配的少一个字符,可以不取后面的
多行:
re.S能让.也可以匹配到
re.M多行匹配,可以全部读取出来
re.I不区分大小写匹配
分组:
1.从左往右数左括号,对‘(’进行编号,自己的分组从1开始,group(0)代表匹配的目标整体。
2.(?:)取消所属分组,()就是普通的(),可以将里面的信息作为整体包裹,但是不产生分组
替换sub
1.不参与匹配的原样带下
2.参与匹配的都会被替换成指定字符串
3.在指定字符串 um会拿到具体分组(注意转义)
4.其他字符都是原样字符串
切分split:将字符串切分成单个字符串列表
.
以上是关于re模块+面向对象的主要内容,如果未能解决你的问题,请参考以下文章