我想替换所有'<'苹果和橙子之间的符号与' - '。
>>> print re.sub(r'(apple.*)<(.*orange)', r'\1-\2', r'apple < < orange')
apple&lt; - 橙色
>>> print re.sub(r'(apple.*)<(?=.*orange)', r'\g<1>-', r'apple < < orange')
apple&lt; - 橙色
答案 0 :(得分:0)
对re.sub
的一次调用仅处理非重叠匹配。
另一种方法是蛮力:
>>> s = 'apple < < orange'
>>> old = None
>>> while s != old:
... old = s
... s = re.sub(r'(apple.*)<(.*orange)', r'\1-\2', s)
...
>>> print s
apple - - orange