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

时间:2016-06-27 20:37:03

标签: python regex hyphen

你能帮我用“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)。

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

1 个答案:

答案 0 :(得分:0)

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

将此与re.sub()

结合使用

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