python正则表达式(三)

表示边界

示例1:$

需求:匹配163.com的邮箱地址

#coding=utf-8

import re

# 正确的地址
ret = re.match("[\w]{4,20}@163\.com", "[email protected]")
ret.group()

# 不正确的地址
ret = re.match("[\w]{4,20}@163\.com", "[email protected]")
ret.group()

# 通过$来确定末尾
ret = re.match("[\w]{4,20}@163\.com$", "[email protected]")
ret.group()

示例2: \b

>>> re.match(r".*\bver\b", "ho ver abc").group()
'ho ver'

>>> re.match(r".*\bver\b", "ho verabc").group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

>>> re.match(r".*\bver\b", "hover abc").group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

示例3:\B

>>> re.match(r".*\Bver\B", "hoverabc").group()
'hover'

>>> re.match(r".*\Bver\B", "ho verabc").group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

>>> re.match(r".*\Bver\B", "hover abc").group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

>>> re.match(r".*\Bver\B", "ho ver abc").group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

匹配分组

示例1:|

需求:匹配出0-100之间的数字

#coding=utf-8

import re

ret = re.match("[1-9]?\d","8")
ret.group()

ret = re.match("[1-9]?\d","78")
ret.group()

# 不正确的情况
ret = re.match("[1-9]?\d","08")
ret.group()

# 修正之后的
ret = re.match("[1-9]?\d$","08")
ret.group()

# 添加|
ret = re.match("[1-9]?\d$|100","8")
ret.group()

ret = re.match("[1-9]?\d$|100","78")
ret.group()

ret = re.match("[1-9]?\d$|100","08")
ret.group()

ret = re.match("[1-9]?\d$|100","100")
ret.group()

示例2:( )

需求:匹配出163、126、qq邮箱之间的数字

#coding=utf-8

import re

ret = re.match("\w{4,20}@163\.com", "[email protected]")
ret.group()

ret = re.match("\w{4,20}@(163|126|qq)\.com", "[email protected]")
ret.group()

ret = re.match("\w{4,20}@(163|126|qq)\.com", "[email protected]")
ret.group()

ret = re.match("\w{4,20}@(163|126|qq)\.com", "[email protected]")
ret.group()

猜你喜欢

转载自www.cnblogs.com/leecoffee/p/9034411.html