我有一个巨大的XML文件(大约100MB),每一行都包含<tag>10005991</tag>
的内容。例如:
textextextextext<tag>10005991<tag>textextextextext
textextextextext<tag>20005992</tag>textextextextext
textextextextext<tag>10005993</tag>textextextextext
textextextextext<tag>20005994</tag>textextextextext
我想替换标记之间的任何以“1”开头的字符串,用我选择的字符串替换,然后写回文件。我试过用线路。更换函数,但仅当我指定字符串时才有效。在
^{pr2}$理想输出:
textextextextext<tag>YYYYYY<tag>textextextextext
textextextextext<tag>20005992</tag>textextextextext
textextextextext<tag>YYYYYY</tag>textextextextext
textextextextext<tag>20005994</tag>textextextextext
我曾考虑过使用一个数组来传递每个字符串,然后进行替换,但我确信有一个更简单的解决方案。在
您可以使用^{} module
re.sub
将用第二个参数替换匹配的文本。在引用文件
用法可能是:
^{pr2}$我想你最好用ElementTree
主要思想: 1) 解析文件 2) 查找元素值 3) 测试你的状况 4) 如果条件满足,则替换值
这里是开始解析的好地方:How do I parse XML in Python?
您可以使用regex,但由于您有多行字符串,因此需要使用^{} 标志,并且在您的模式中,您可以使用positive look-around来匹配标记之间的字符串:
同样,正如@Bhargav Rao在他的回答中所做的那样,您可以使用分组来代替环顾:
^{pr2}$相关问题 更多 >
编程相关推荐