2018-06-19分组(2)

tip1:|理论上是要加上括号的(括号表示是这些以|分开的规则中的某一个部分),如果左右描述了完整的表达式才不用加括号。
tip2:“.”在正则表达式中有特殊意义,所以需要匹配“.”的时候,不能直接写上不管,而是要用""转义符把正则的“.”属性去掉,而恢复原来的“.”的真实含义。
tip3:明确知道后面不能再跟上东西的时候要有$结尾。

正则表达式匹配邮箱账号

>>> p = r"(\w+)@(163|126|qq|gmail)\.(com|cn|net)$"
>>> r = re.match(p, "[email protected]")
>>> r
<_sre.SRE_Match object; span=(0, 13), match='[email protected]'>
>>> r.group()
'[email protected]'
>>> r.groups()
('itcast', 'qq', 'com')
>>> r.groups(1)
('itcast', 'qq', 'com')
  • 当需要的括号分组多容易乱的时候,使用序号表示就变得不再方便,这时候我们可以用?P<>来对这个括号匹配进行命名。?P<>不属于正则表达式中的内容,真正起作用的是其他内容。<>里面写名字。
使用示例:
>>> s
'

itcast

' >>> re.match(r"<(?P.+)><(?P.+)>.+", s) <_sre.SRE_Match object; span=(0, 28), match='

itcast

'>

起名时候用<>,用的时候用=;起名的时候要把被起名的表达式一起括起来,用的时候把自己括起来。

你可能感兴趣的:(2018-06-19分组(2))