我有一个几十万行的 XML 文件,里面全是我不需要的数据。我正在寻找一种方法来批量删除数千行不相关的数据,我知道这可以通过使用正则表达式进行查找和替换来实现。但我的正则表达式技能基本上不存在。
该文件符合 XML 标准,因此每行都以标签开头和结尾。整个文档中重复数百次的示例块是:
<g:payment_accepted>Visa</g:payment_accepted> <g:payment_accepted>Cash</g:payment_accepted> <g:payment_accepted>MasterCard</g:payment_accepted> <g:payment_accepted>Check</g:payment_accepted> <g:payment_accepted>WireTransfer</g:payment_accepted>
所以在这个例子中我想要一个正则表达式来搜索实例:
<g:payment_accepted>WILDCARD_ANYTHING_IN_BETWEEN</g:payment_accepted>
一旦我理解了可用的正则表达式,我就可以针对文档中的其他重复标记块对其进行调整。但不知道从哪里开始。
答案1
您可以将.*
任何内容放在想要允许的任何位置。开头的插入符号标记一行的开始,结尾的美元符号标记一行的结束。
^<g:payment_accepted>.*</g:payment_accepted> $
(将 OP 的评论放入答案中,以便更容易找到解决方案。)