浅谈python 中正则的一些函数

时间:2023-03-09 23:58:09
浅谈python 中正则的一些函数

     主要的函数有  :

  • match()
  • search()
  • findall()
  • group()
  • groups()
  • split()
  1.  match (): 含义  开头匹配,匹配成功返回一个对象失败则返回  none
     #!/usr/bin/python
    import re
    re.match('youshi','youshini') print re.match 返回的结果:
    [root@Cnyunwei ~]# python 1.py
    <function match at 0x7f19e6f6c1b8> 2 不开头匹配
    #!/usr/bin/python
    import re   
    m=re.match('youshi','2222youshini')
                
    print  m    返回的结果: [root@Cnyunwei ~]# python 1.py
    None

    2.search()  和  match() 相似, 匹配成功返回一个对象失败则返回none,不通点在于它可以再一个字符串的任意位置匹配

     #!/usr/bin/python
    import re
    m=re.search('youshi','2222youshini') print m
    print '*'*50
    c=re.search('','')
    print c 结果:
    [root@Cnyunwei ~]# python 1.py
    <_sre.SRE_Match object at 0x7f39a18521d0>
    **************************************************
    None

    3.findall    返回一个匹配的列表:

 #!/usr/bin/python
import re
m=re.findall('youshi','2222youshini') print m
print '*'*50
c=re.findall('','')
print c ~ 结果:
[root@Cnyunwei ~]# python 1.py
['youshi']
**************************************************
[]

4. grop() 返回匹配的对象值 如返回match ()  和 search() 函数对象具体的值如果这两个函数返回的对象为空则用group()会报错

#!/usr/bin/python
import re
m=re.search('youshi','2222youshini') print m
m.group()
print '*'*50
c=re.search('','')
print c
c.group() ~
结果:
<_sre.SRE_Match object at 0x7fd4db65e1d0>
**************************************************
None 下面没有匹配会:
AttributeError: 'NoneType' object has no attribute 'group'

split   分割字符返回列表

 #!/usr/bin/python
import re
import os
os.system('who >1.who')
f=open('1.who','r') for i in f.readlines() :
print re.split('/s/s+|\t',i.strip())
print '*'*50 f.close()
结果:
[root@Cnyunwei ~]# python 1.who.py
['root tty1 2016-06-03 08:35']
**************************************************
['root pts/0 2016-06-03 12:10 (192.168.4.232)']
**************************************************
[root@Cnyunwei ~]# vim 1.who.py