Add a digit pattern to the lookahead:
d+(?!d|px)
See the regex demo
This way, you will not allow a digit to match after 1 or more digits are already matched.
Another way is to use an atomic group work around like
(?=(d+))1(?!px)
See the regex demo. Here, (?=(d+))
captures one or more digits into Group 1 and the 1
backreference will consume these digits, thus preventing backtracking into the d+
pattern. The (?!px)
will fail the match if the digits are followed with px
and won't be able to backtrack to fetch 2
.
Both solutions will work with re.findall
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…