正则表达式 + NP++ + 在页面顶部捕获字符串,从页面底部捕获字符串



这是我的正则表达式

我想做的是能够捕获表格和页码。示例输出或我想要的内容如下。我希望我想要的表格部分是显而易见的。页码以10 4 Text Core statistics aggregated by the Statistics(第一个数字)10,以4 Text Core statistics aggregated by the Statistics 1212(最后一个数字)表示。

在 np++ 中,我可以使用Table d+获取所有表 但是我也想要同一页面底部的页码。

我有什么:

Table 1: bifrost
<lots of randon text >
10 4 Text Core statistics aggregated by the Statistics 
<lots of randon text >
4 Text Core statistics aggregated by the Statistics 11
Table 2: homestead
<lots of randon text >
4 Text Core statistics aggregated by the Statistics 12
<lots of randon text >
12 4 Text Core statistics aggregated by the Statistics 

Table 3: homestead
<lots of randon text >
12 4 Text Core statistics aggregated by the Statistics 

我想要什么:

Table 1: bifrost
10 4 Text Core statistics aggregated by the Statistics 
Table 2: homestead
4 Text Core statistics aggregated by the Statistics 12
Table 3: homestead
12 4 Text Core statistics aggregated by the Statistics 

编辑1

关于以下可能的答案,如果这有帮助:

(Table d*).*?(?=d+s(d+s)?Text Core)([^n]+)(.*?(?=^Table d+|z))-- 没有找到任何(Table d*).*-
工作找到Table
(Table d*)- workds 查找行的Table和编号部分(例如Table 1)

.*?(?=d+s(d+s)?Text Core)

- works 查找以数字(^零长度匹配)开头的行开头的数字
(?=d+s(d+s)?Text Core)- works 查找以数字(^零长度匹配)开头的行开头的数字([^n]+)-
作品查找带有文本的行(即突出显示所有文本)
(.*?(?=^Table d+|z))- 工作 这找到行的开头,开头有表格。

Edit实际上下载了记事本++并测试了正则表达式。

这将起作用:

(^Table d+).*?(?=d+s(d+s)?Text Core)([^n]+)(.*?(?=^Table d+|z))

它使用积极的前瞻来搜索表号之后的第一个页码,然后抓取从那里到行尾的所有内容。然后它抓取所有内容,直到下一个"表"。请注意,您需要选中. matches newline框。

如果要进行替换,请将其替换为1n3n。regex101.com 演示

我至少可以提供部分解决方案。 对以下模式进行替换:

^(?!Table)(?!d+ (?:d+ )?Text Core).*$

并将其替换为空字符串。 这应该删除以Table开头或包含Text Core的行之间的所有随机文本。 这是一个工作演示:

演示

相关内容

  • 没有找到相关文章

最新更新