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模块+面向对象的主要内容,如果未能解决你的问题,请参考以下文章

day23 面向对象

six day--面向对象

python入门:正则表达式,面向对象编程,零基础视频教程分享

python之路文章目录

面向对象

Python基础re模块