0

我通常使用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

4 回答 4

1

尝试

re.sub('<sales_start_date>.+</sales_start_date>', 
       '<sales_start_date>2013-01-01</sales_start_date>', 
        data)
于 2013-02-08T23:21:20.277 回答
1

由于您知道确切的标签,这非常简单,只需抓取任何字符,直到下一个标签(任何字符 not <):

re.sub('<sales_start_date>[^<]+</sales_start_date>', 
       '<sales_start_date>2013-01-01</sales_start_date>', 
        data)
于 2013-02-08T23:22:43.910 回答
0

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

r'<sales_start_date>\d{4}-\d{2}-\d{2}</sales_start_date>'
于 2013-02-08T23:22:03.073 回答
-1

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

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

于 2013-02-08T23:17:45.260 回答