普通的正则表达式,?+*等都是作用于单个字符的,比如下面的re表达式:
_s1 = '14234ababababerewi34dsabbfsaabbbbx.xxx'
_s1Re2 = re.search(r'ab+', _s1)
ic(_s1Re2.group(0))
_s1Re3 = re.findall(r'ab+', _s1)
ic(_s1Re3)
输出结果:
_s1Re2.group(0): 'ab'
_s1Re3: ['ab', 'ab', 'ab', 'ab', 'abb', 'abbbb']
可以看出,+作用范围只是字母b。
如果要找出多个ab连续出现,如何操作?
其实很简单,使用正则表达式的组合即()即可。
_s1 = '14234ababababerewi34dsabbfsaabbbbx.xxx'
_s1Re = re.search(r'(ab)+', _s1)
ic(_s1Re.group(0), _s1Re.group(1))
输出:
_s1Re.group(0): 'abababab'
_s1Re.group(1): 'ab'
多个abababab被顺利找出。OVER