У меня есть следующий код:Python регулярное выражение заменить строку
a="32<2>fdssa</2>ffdsa32"
re.sub(r'<(\d+)>|</(\d+)>',"item",a)
В результате я получаю:
32itemfdssaitemffdsa32
Я хочу, чтобы результат:
32<item>fdssa</item>ffdsa32
У меня есть следующий код:Python регулярное выражение заменить строку
a="32<2>fdssa</2>ffdsa32"
re.sub(r'<(\d+)>|</(\d+)>',"item",a)
В результате я получаю:
32itemfdssaitemffdsa32
Я хочу, чтобы результат:
32<item>fdssa</item>ffdsa32
Вы должны захватить </
часть.
re.sub(r'(</?)\d+>',r"\1item>",a)
Поскольку я сделал /
в качестве дополнительного, (</?)
будет захватывать <
или </
Пример:
>>> a="32<2>fdssa</2>ffdsa32"
>>> re.sub(r'(</?)\d+>',r"\1item>",a)
'32<item>fdssa</item>ffdsa32'
>>> re.sub(r'(</?)\d+(?=>)', r'\1item', a)
'32<item>fdssa</item>ffdsa32'
(</?)
соответствует <
или </
захватывает в \1
\d+
соответствует одному или более цифр.
(?=>)
положительный взгляд вперед, проверяет цифры сопровождается >
, но не потребляющих их