在Perl / Notepad ++中的特定行之后查找匹配项

时间:2015-11-03 12:23:35

标签: regex perl notepad++

我的问题是我有一个文档被分成几个部分,每个部分都由一个行标题 - [Header1],[Header2]等 - 记录 - 并包含分成单独行的各种类型的数据集,其中每一行都由一个标签开始,表明后面是什么类型的数据,如下所示:

[Header1]

data_label_type1      = 1,2,3
data_label_type2   = 1,2,3,4
data_label_type1     = 1,2,3,4,5
data_label_type3    = 1,2

请注意标题/部分不按顺序排列,因此Header1并不总是启动文档,Header2也不会始终跟随。

有点偏离主题,但数据集是我正在为论文做主题的实验的结果。

我希望能够使用单个正则表达式函数捕获仅在第一部分(在Header1下)中找到的类型1数据。在捕获它之后,我将使用replace和另一个函数将捕获的数据转换为另一种形式。

最初我使用的是正则表达式type1\h*=\h*([[:graph:]]*),但这只是一行一行,而且我有数百个文档 - 可能需要捕获成千上万的个别行。

我可以使用正则表达式很好地转换我的数据,但我的问题在于我不知道如何从Header1专门捕获类型1数据。任何帮助,提示或指示开始一些实验将非常感激!

1 个答案:

答案 0 :(得分:0)

正则表达式显然无法提供解决方案,而是会使用解析器等替代方案。