主要的函数有 :
- 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.py 10 <function match at 0x7f19e6f6c1b8>
2 不开头匹配
#!/usr/bin/python
import re
m=re.match('youshi','2222youshini')
print m
返回的结果:
[root@Cnyunwei ~]# python 1.py
None2.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.py 14 <_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.py 14 ['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 c c.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+| ',i.strip()) 9 print '*'*50 10 11 f.close() 12 结果: 13 [root@Cnyunwei ~]# python 1.who.py 14 ['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