用正则表达式替换xml标签
我通常使用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
你可以使用一个更具体的正则表达式,比如:
r'<sales_start_date>\d{4}-\d{2}-\d{2}</sales_start_date>'
1
尝试一下
re.sub('<sales_start_date>.+</sales_start_date>',
'<sales_start_date>2013-01-01</sales_start_date>',
data)
1
既然你已经知道了具体的标签,那么这件事就简单多了。你只需要抓取下一个标签之间的所有字符,也就是抓取所有不是<
的字符。
re.sub('<sales_start_date>[^<]+</sales_start_date>',
'<sales_start_date>2013-01-01</sales_start_date>',
data)