Python正则表达式替换字符串

时间:2015-06-25 11:01:10

标签: python regex

我有以下代码:

 a="32<2>fdssa</2>ffdsa32"
 re.sub(r'<(\d+)>|</(\d+)>',"item",a)

我得到的结果:

32itemfdssaitemffdsa32

我想要结果:

32<item>fdssa</item>ffdsa32

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:1)

>>> re.sub(r'(</?)\d+(?=>)', r'\1item', a)
'32<item>fdssa</item>ffdsa32'
  • (</?)匹配<</抓取\1

  • \d+匹配一个或多个数字。

  • (?=>)正面向前看,检查数字后面跟>,但不消耗它们