2013-02-19 75 views
0

我有一个结构(例如groups> subgroups>子记录)的xml响应,并用不同的值重复数千次。使用记事本++从xml中提取特定数据

我想只抓取其9位序列号字段匹配我提供的子组,并将它们提取到它自己的文件中。当提取子组时,它也会带来该组。我希望这样的任务可以使用记事本++和可能通过使用正则表达式,但不知道我将如何去做这件事。

+2

号使用XML解析器和XPath。记事本++与正则表达式不是这项任务的正确工具。 – Bergi 2013-02-19 16:01:07

回答

1

我并不熟悉notepad ++。对于我的解决方案来说,它需要支持多行正则表达式和高级正则表达式语法(非贪婪匹配)。并非所有支持正则表达式的文本编辑器都可以。

我会以外部标记开始和结束,您希望\<subgroup\>\<\/subgroup\>转义特殊字符。为了捕捉介于两者之间的内容,我将使用非贪婪匹配\<subgroup\>\.*?<\/subgroup\>。然后我会添加您感兴趣的具体序列号\<subgroup\>\.*?123456789.*?<\/subgroup\>

如果你想找到一些多个序列号的位置使用类似

\<subgroup\>\.*?(123456789|987654321|678912345).*?<\/subgroup\> 
+0

在我的情况下,涉及多个序列号,我在想如果可能以某种方式在记事本++的逗号分隔类型列表中添加这些列表以提取列表中序列号的组。 – bman2013 2013-02-19 20:35:55

+0

编辑我的答案,包括找到序列号列表 – 2013-02-19 23:08:32