re正则表达式公式讲解3

1.分组匹配    用()把需要分组的类型括起来,如下

import re

m = re.search("([a-z]+)([0-9]+)","alex123")
print(m.groups())          #用groups() 涉及到分组就用groups
# ('alex', '123')

 

2.”\A“   表示从头开始匹配,和”^“ match 类似

“\Z”      匹配字符结尾,同$ 

“\d”           相当于数字0-9

import re

m = re.search("([a-z]+)([\d]+)","alex123")
print(m.groups())

('alex', '123')

 

“\D”  匹配非数字

import re

m = re.findall("\D","alex%467*123")
print(m)

# ['a', 'l', 'e', 'x', '%', '*']

 

“\w” 匹配(a-z A-Z 0-9)

import re

m = re.findall("\w","alex%467*123")
print(m)

# ['a', 'l', 'e', 'x', '4', '6', '7', '1', '2', '3']

 

“\W”   匹配非(a-z A-Z 0-9)

import re

m = re.findall("\W","alex%467*123")
print(m)

# ['%', '*']

 

“\s”  匹配空白字符

import re

m = re.findall("\s","ale\nx%46\t7*123")
print(m)

# ['\n', '\t']

 

“(?P<name>...)” 分组匹配 分组之间不需要加逗号,加了会报错。

import re
s = "321324199309187654"
m = re.search("(?P<convince>\d{3})""(?P<city>\d{3})""(?P<year>\d{4})""(?P<month>\d{4})",s)
print(m.groups())

# ('321', '324', '1993', '0918')

调用groupdict,生成字典。

import re
s = "321324199309187654"
m = re.search("(?P<convince>\d{3})""(?P<city>\d{3})""(?P<year>\d{4})""(?P<month>\d{4})",s)
print(m.groups())

print(dir(m))
print(m.groupdict())

# {'convince': '321', 'city': '324', 'year': '1993', 'month': '0918'}

  

  

posted @ 2018-04-20 22:29  Roc_Atlantis  阅读(254)  评论(0编辑  收藏  举报