Python正则表达式:在特定字符之后替换所有出现的某个字符串

时间:2014-07-03 22:45:45

标签: python regex

如何在Python中的特定字符之后替换所有出现的某个字符串?

例如,我想用abc替换所有出现的x NOT和def。这是代码:

re.sub(r'(^|[^x])abc', r'\1def', string)

如果字符串没有连续abc s,则代码完美无缺。但是,如果我有string='abcabc',则代码无法正常工作。有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:3)

lookbehind断言(?<!...) (即前面没有)

(?<!x)abc

替换:

re.sub(r'(?<!x)abc', r'def', string)

答案 1 :(得分:2)

result = re.sub("(?<!x)abc", "def", subject)
  • 负面的后视(?<!x)声称前面的内容不是x
  • abc匹配abc
  • 我们替换为def

<强>参考