re模块

一:什么是正则?

正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。

二:常用匹配模式(元字符)

 

# ===========================re模块提供的方法介绍========================
import re
#1
print(re.findall('e','alex make love') )   #['e', 'e', 'e'],返回所有满足匹配条件的结果,放在列表里
#2
print(re.search('e','alex make love').group()) #e,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

#3
print(re.match('e','alex make love'))    #None,同search,不过在字符串开始处进行匹配,完全可以用search+^代替match

#4
print(re.split('[ab]','abcd'))     #['', '', 'cd'],先按'a'分割得到''和'bcd',再对''和'bcd'分别按'b'分割

#5
print('===>',re.sub('a','A','alex make love')) #===> Alex mAke love,不指定n,默认替换所有
print('===>',re.sub('a','A','alex make love',1)) #===> Alex make love
print('===>',re.sub('a','A','alex make love',2)) #===> Alex mAke love
print('===>',re.sub('^(\w+)(.*?\s)(\w+)(.*?\s)(\w+)(.*?)$',r'\5\2\3\4\1','alex make love')) #===> love make alex

print('===>',re.subn('a','A','alex make love')) #===> ('Alex mAke love', 2),结果带有总共替换的个数


#6
obj=re.compile('\d{2}')

print(obj.search('abc123eeee').group()) #12

 

1 ret = re.split('\d+','eva123dasda9dg')#按数字分割开了
2 print(ret) #输出结果:['eva', 'dasda', 'dg']
3 
4 ret = re.split('(\d+)','eva123dasda9dg')
5 print(ret) #输出结果:['eva', '123', 'dasda', '9', 'dg']
6 # 
7 # 在匹配部分加上()之后和不加括号切出的结果是不同的,
8 # 没有括号的没有保留所匹配的项,但是有括号的却能够保留了
9 # 匹配的项,这个在某些需要保留匹配部分的使用过程是非常重要的

  

posted @ 2018-08-02 19:34  zhang.ning  阅读(156)  评论(0编辑  收藏  举报