用regex替换xml标记

时间:2013-02-08 23:12:40

标签: python regex

我通常使用lxml来解析xml,但在这种情况下,我只需要更改单个标记的内容。

<sales_start_date>YYYY-MM-DD</sales_start_date>

YYYY-MM-DD是一个可变日期。

我如何将上述内容替换为:

<sales_start_date>2013-01-01</sales_start_date>

这是我目前拥有的(哪种作品)

re.sub('<sales_start_date>[\d-]+</sales_start_date>', 
       '<sales_start_date>2013-01-01</sales_start_date>', 
        data)

4 个答案:

答案 0 :(得分:1)

re.sub('<sales_start_date>.+</sales_start_date>', 
       '<sales_start_date>2013-01-01</sales_start_date>', 
        data)

答案 1 :(得分:1)

由于你知道确切的标签,这很简单,只需抓住任何字符,直到下一个标签(任何字符不是<):

re.sub('<sales_start_date>[^<]+</sales_start_date>', 
       '<sales_start_date>2013-01-01</sales_start_date>', 
        data)

答案 2 :(得分:0)

您可以使用更具体的正则表达式,例如:

r'<sales_start_date>\d{4}-\d{2}-\d{2}</sales_start_date>'

答案 3 :(得分:-1)

[\ d - ] +不会与YYYY-MM-DD匹配,只会与YYYY-MM匹配 -

尝试[\ d - ] + \ d或\ d + - \ d + - \ d +