前向否定界定符

2019-08-14  本文已影响0人  MrSunday_8955

正则表达式中前向否定界定符:表达式为(?! re),当所含表达式不包含在字符串当前位置时成功匹配。
匹配举例如下:

# vi test.py
#字符串匹配含有boy的内容,剔除girl字符串内容
import re

boy1='boy1   50.00  =  ok'
boy3='0011 boy3   70.00   ok'

girl2='girl2   60.00  =  ok'
girl4='0012 girl4   80.00   ok'

pattern = re.compile(r'^(?:(?!girl).)*\s(\d+\.?\d+)\s*(=\s*)?ok', re.IGNORECASE)

print(pattern.search(boy1).groups()) if pattern.search(boy1) else pattern.search(boy1)
print(pattern.search(boy3).groups()) if pattern.search(boy3) else pattern.search(boy3)
print(pattern.search(girl2).groups()) if pattern.search(girl2) else pattern.search(girl2)
print(pattern.search(girl4).groups()) if pattern.search(girl4) else pattern.search(girl4)

执行结果:
# python test.py 
('50.00', '=  ')
('70.00', None)
None
None

上一篇 下一篇

猜你喜欢

热点阅读