2015-06-25 4 views

ответ

3

Вы должны захватить </ часть.

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' 
2
>>> re.sub(r'(</?)\d+(?=>)', r'\1item', a) 
'32<item>fdssa</item>ffdsa32' 
  • (</?) соответствует < или </ захватывает в \1

  • \d+ соответствует одному или более цифр.

  • (?=>) положительный взгляд вперед, проверяет цифры сопровождается >, но не потребляющих их

Смежные вопросы