Если ваши регулярные выражения довольно просто, вы можете просто создать дизъюнкции из вашего нескольких регулярных выражений и заменить их все сразу:
>>> text = "something with 0 and >"
>>> re.sub(r"ing|0|>", "ring", text)
'somethring with ring and ring'
В качестве альтернативы , вы можете использовать цикл или просто заменять их один за другим, но не забудьте заменить текст в результате предыдущей замены, а не в исходном тексте!
Т.е., используя свой псевдо-код, он должен быть чем-то вроде этого:
r = re.compile(regex1)
r1 = r.sub(something, text)
re.compile(regex2)
r2 = r.sub(something, r1) # use r1 here
re.compile(regex3)
r3 = r.sub(something, r2) # and r2 here
Или просто присвоить обратно к исходной text
переменной:
for x in ["ing", "0", ">"]:
text = re.sub(x, "ring", text)
print text
(Конечно, вы должны обязательно замените ing
перед заменой других вещей на ring
, в противном случае ing
в ring
будет заменен снова!)
пример был бы лучше. –
Какие изменения вы хотите сделать в своей строке? – Kasramvd
, например, заменить слова, заканчивающиеся на первый случай: ing с кольцом, второй случай 2: заменить 0 на кольцо: случай 3: заменить> на кольцо. То, что я пытаюсь сказать, три случая могут быть разными, но то, что его заменяют, одинаково – ananymous59