问题描述
在Python的正则表达式中:如果regex1
不这样做,为什么regex2
抱怨固定宽度的隐藏? ^
(开始标记)是否超过1个字符?
Regex1
(?<=^|b)[0-9]
Regex2
(?<=a|b)[0-9]
可在https://regex101.com/r/L5J47R/2中复制
解决方法
为什么第一个正则表达式在Python中也不起作用,因为^
是零宽度匹配,并且Python正则表达式引擎不支持在后置断言中使用零和非零交替。
但是其他引擎(例如Java,PHP,Perl,C#等)支持此功能。
要解决此问题,可以使用以下正则表达式:
(?:^|(?<=b))[0-9]