你能帮我用“sub”来改变这些表达式的数量:
&安培; AFL-03-123456
&安培; AFL-01-12345
&安培; AFL-02-123
上下文:samsung-j7-duos-dual-chip-desbloqueado-oi-android-5.1-tela-5.5-16gb-wi-fi-4g-camera-13mp-branco& AFL-03-171644black
需要在其他数字的第二个短划线后更换数字(比方说987654)。
正如您在示例中所看到的,第二个短划线之后的数字可能会有不同的位数,但它们始终是数字。
de first dash后的数字始终为0X(X = 1,2或3)。
我给出的例子是更大字符串的一部分,所以其他“ - ”和“&”可能出现在字符串中的任何其他位置,包括多次。
答案 0 :(得分:0)
(?<=&AFL-\d\d-)(\d+)
将匹配您要替换的数字,使用正面的lookbehind,确保&AFL-XX-
存在,但不匹配。
将此与re.sub()
结合使用 re.sub(r"(?<=&AFL-\d\d-)(\d+)", string_to_fix, digits_you_want)