主要的函数有 :
- match()
- search()
- findall()
- group()
- groups()
- split()
- match (): 含义 开头匹配,匹配成功返回一个对象失败则返回 none
1 #!/usr/bin/python 2 import re 3 re.match('youshi','youshini') 4 5 print re.match 6 7 8 返回的结果: 9 [root@Cnyunwei ~]# python 1.py10
2 不开头匹配 #!/usr/bin/python import re m=re.match('youshi','2222youshini') print m 返回的结果: [root@Cnyunwei ~]# python 1.py None 2.search() 和 match() 相似, 匹配成功返回一个对象失败则返回none,不通点在于它可以再一个字符串的任意位置匹配
1 #!/usr/bin/python 2 import re 3 m=re.search('youshi','2222youshini') 4 5 print m 6 print '*'*50 7 c=re.search('123','789') 8 print c 9 10 11 12 结果:13 [root@Cnyunwei ~]# python 1.py14 <_sre.SRE_Match object at 0x7f39a18521d0>15 **************************************************16 None
3.findall 返回一个匹配的列表:
1 #!/usr/bin/python 2 import re 3 m=re.findall('youshi','2222youshini') 4 5 print m 6 print '*'*50 7 c=re.findall('123','789') 8 print c 9 10 ~ 11 12 结果:13 [root@Cnyunwei ~]# python 1.py14 ['youshi']15 **************************************************16 []
4. grop() 返回匹配的对象值 如返回match () 和 search() 函数对象具体的值如果这两个函数返回的对象为空则用group()会报错
#!/usr/bin/python import re m=re.search('youshi','2222youshini') print m m.group() print '*'*50 c=re.search('123','789')print cc.group() ~ 结果:<_sre.SRE_Match object at 0x7fd4db65e1d0>**************************************************None 下面没有匹配会:AttributeError: 'NoneType' object has no attribute 'group'
split 分割字符返回列表
1 #!/usr/bin/python 2 import re 3 import os 4 os.system('who >1.who') 5 f=open('1.who','r') 6 7 for i in f.readlines() : 8 print re.split('/s/s+|\t',i.strip()) 9 print '*'*5010 11 f.close()12 结果:13 [root@Cnyunwei ~]# python 1.who.py14 ['root tty1 2016-06-03 08:35']15 **************************************************16 ['root pts/0 2016-06-03 12:10 (192.168.4.232)']17 **************************************************18 [root@Cnyunwei ~]# vim 1.who.py