【发布时间】:2017-11-20 02:01:49
【问题描述】:
我有一百多个 XML 文件,其中包含数千行以下内容:
<filler name="1" subject="Test subject">
'
<content subject="Test subject" date="2017-20-11" author="testuauthor1">Blah</content>
<content subject="Test subject" date="2017-20-11" author="testuauthor2">Blah</content>
<content subject="Test subject" date="2017-20-11" author="testuauthor3">Blah</content>
'
</filler>
我正在寻找一种方法来提取“作者”的内容,所以剩下的就是:
testauthor1
testauthor2
testauthor3
我尝试在 Notepad++ 中使用正则表达式。我现在拥有的是以下代码:
(author[\=\"].*[\"\>])
我对 Regex 很陌生,但我在此处的另一个出色线程中找到了上述内容。我将它与 Notepad++ 的搜索功能一起使用。它确实突出了by="author",但也突出了该行的其余部分,即。 ></content>,意思是‘content’的内容也被高亮了,这是个问题。
所以这显然不是解决方案。 即使如果我设法突出显示每个by="author",我需要将它们中的每一个复制粘贴到一个新文档中,但我们正在谈论成千上万的事件。
我已经搜索了几个小时来寻找解决方案,但也许我遗漏了一些明显的东西。我什至尝试将每个 .xml 文件转换为 .csv 并剥离 .csv 文档中的所有内容,但“作者”列除外。不过,这不是一个可行的解决方案。
如果有人能指出我在这里做什么的正确方向,我将不胜感激。我从来没有尝试过这样的事情。谢谢!
【问题讨论】:
-
在 NPP 搜索和替换窗口中尝试
\bauthor="([^"]+)"|(?s:.)并替换为(?1$1\n:)。 -
詹姆斯,有什么对你有用的吗?
标签: regex xml notepad++ extract