替换所有出现的'模式'在使用Python正则表达式的字符串的一部分

时间:2016-09-28 02:35:31

标签: python regex

我想替换所有'<'苹果和橙子之间的符号与' - '。

>>> 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; - 橙色

1 个答案:

答案 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