处理破折号之间的正则表达式

Treat regular expression between dashes

你能帮我用“sub”来改变这些表达式的数字吗:

&AFL-03-123456

&AFL-01-12345

&AFL-02-123

context: samsung-j7-duos-dual-chip-desbloqueado-oi-android-5.1-tela-5.5-16gb-wi-fi-4g-camera-13mp-branco&AFL-03-171644black

需要将第二个破折号后的数字替换为其他数字(比如 987654)。

第二个破折号后的数字,如您在示例中所见,位数可能有所不同,但它们始终是数字。

第一个破折号后的数字始终为 0X(X = 1,2 或 3)。

我给出的示例是更大字符串的一部分,因此其他“-”和“&”可能出现在字符串中的任何其他位置,包括多次。

(?<=&AFL-\d\d-)(\d+) 将匹配您要替换的数字,使用正后视,确保 &AFL-XX- 存在,但不匹配它们。

将此与 re.sub()

合并

re.sub(r"(?<=&AFL-\d\d-)(\d+)", string_to_fix, digits_you_want)