regex+;np+++;捕获页面顶部的字符串和页面底部的字符串
这是我的 我想做的是能够捕获表和页码。下面是我想要的输出示例。希望我想要的桌子部分是显而易见的。在由统计数据(第一个数字)聚合的regex+;np+++;捕获页面顶部的字符串和页面底部的字符串,regex,notepad++,Regex,Notepad++,这是我的 我想做的是能够捕获表和页码。下面是我想要的输出示例。希望我想要的桌子部分是显而易见的。在由统计数据(第一个数字)聚合的10 4文本核心统计数据中,页码为10;在由统计数据12(最后一个数字)聚合的4文本核心统计数据中,页码为12 在np++中,我可以使用Table\d+获取所有表,但我还需要来自同一页底部的页码 我所拥有的: Table 1: bifrost <lots of randon text > 10 4 Text Core statistics aggrega
10 4文本核心统计数据中,页码为10
;在由统计数据12
(最后一个数字)聚合的4文本核心统计数据中,页码为12
在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
编辑1
关于以下可能的答案,如果这有帮助:
(Table\d*)。(?=\d++\s(\d++\s)?文本核心)([^\n]+)(。(?=^Table\d++\z))
--找不到任何内容
(Table\d*).
-works查找表
行
(表\d*)
-workds查找表和行的编号部分(例如表1
)
*?(?=\d+\s(\d+\s)?文本核心)
-works在以数字(^0长度匹配)开头的行的开头查找数字
(?=\d+\s(\d+\s)?文本核心)
-works在以数字(^zero length match)开头的行的开头查找数字
([^\n]+)
-works查找包含文本的行(即突出显示所有文本)
(.*(?=^Table\d+|\z))
-此操作将查找行的开头,表位于行的开头
我至少可以提供部分解决方案。按以下模式进行更换:
^(?!Table)(?!\d+ (?:\d+ )?Text Core).*$
并将其替换为空字符串。这将删除以表格
开头或包含文本核心
的行之间的所有随机文本。以下是一个工作演示:
我至少可以提供部分解决方案。按以下模式进行更换:
^(?!Table)(?!\d+ (?:\d+ )?Text Core).*$
并将其替换为空字符串。这将删除以表格
开头或包含文本核心
的行之间的所有随机文本。下面是一个工作演示:
编辑实际下载了notepad++并测试了正则表达式
这将有助于:
(^Table \d+).*?(?=\d+\s(\d+\s)?Text Core)([^\n]+)(.*?(?=^Table \d+|\z))
它使用正向前瞻搜索表号之后的第一个页码,然后获取从那里到行尾的所有内容。然后它把所有的东西都拿到下一张桌子上。请注意,您需要检查。匹配换行符
框
如果要进行替换,请将其替换为\1\n\3\n
Edit实际下载了notepad++并测试了正则表达式
这将有助于:
(^Table \d+).*?(?=\d+\s(\d+\s)?Text Core)([^\n]+)(.*?(?=^Table \d+|\z))
它使用正向前瞻搜索表号之后的第一个页码,然后获取从那里到行尾的所有内容。然后它把所有的东西都拿到下一张桌子上。请注意,您需要检查。匹配换行符
框
如果要进行替换,请将其替换为\1\n\3\n
*(?!Table\d+:\w+。*
我尝试了这种消极的前瞻,但它正在删除我想保留的行,例如Table…
@HattrickNZ显然不起作用,因为你把*
放在了前面。顺便说一下,如果你的实际数据与你在你的问题中所发表的内容不同,现在是说某事的好时机。TKS,我开始工作,然后用SED删除所有空白行。<代码> *(?!表\D+:\W+).*
我尝试了这种消极的前瞻,但它正在删除我想要保留的行,例如,表….
@HattrickNZ显然不起作用,因为您将*
放在前面。顺便说一下,如果你的实际数据与你在你的问题中所发表的内容不同,现在是说某事的好时机。TKS,我开始工作,然后用SED删除所有空白行。@ TimiGeEeleSein我是从OPS原始演示例子中工作的,它命名了组。但也许我没有正确理解这个问题,因为我需要采取行动。@TimBiegeleisen编辑了这篇文章,希望它更有用。我已经下载了notepad++(最新版本,v7.5.6)并对此进行了测试。发现了一些问题,但现在它确实对我有效。还更新了regex101上的演示。是的,我无法想象7.5.4和7.5.6彼此有那么大的不同。你有没有试过只是找一个?这和什么匹配吗?你确定你已经检查了。是否匹配换行符
框(在Regexp单选按钮旁边)?如果您有regex(Table\d*)。
应该匹配整个文档,而不仅仅是以Table开头的行。否则我会感到困惑…@TimBiegeleisen我是从OPs的原始演示示例开始工作的,该示例已命名为组。但也许我没有正确理解这个问题,因为我需要采取行动。@TimBiegeleisen编辑了这篇文章,希望它更有用。我已经下载了notepad++(最新版本,v7.5.6)并对此进行了测试。发现了一些问题,但现在它确实对我有效。还更新了regex101上的演示。是的,我无法想象7.5.4和7.5.6彼此有那么大的不同。你有没有试过只是找一个?这和什么匹配吗?你确定你已经检查了。是否匹配换行符
框(在Regexp单选按钮旁边)?如果您有regex(Table\d*)。
应该匹配整个文档,而不仅仅是以Table开头的行。否则我会很困惑。。。