python|一文看懂正则表达式?:和?=的区别

#!/usr/bin/python # -*- coding: UTF-8 -*-import rephone = "1233-hfdh"# 匹配的是123 # ?:后面匹配消耗字符,也就是说在一个匹配发生后,后面的匹配是?:匹配到的23后面开始继续匹配 print(re.search('1(?:23)', phone)) print(re.search('1(?:23)23', phone))# 匹配的是1 # ?=后面匹配不消耗字符,也就是说在一个匹配发生后,后面的匹配是从前面的1后面开始而不是从?=匹配到的23后面开始继续匹配 print(re.search('1(?=23)', phone)) print(re.search('1(?=23)23', phone))

    推荐阅读