gpt4 book ai didi

正则表达式选择多行,直到两个连续的新行在 Mac 上不起作用

转载 作者:行者123 更新时间:2023-12-05 08:10:41 25 4
gpt4 key购买 nike

我需要在以 “Query #” 开头的行和两个连续的回车符之间提取几行文本(在 500 MB 文档中长度不同)。这是在 Mac 上完成的。例如文档格式为:

Query #1: 020.1-Bni_its1_2019_envio1set1

lines I need to extract


Alignments (the following lines I don't need)

xyz
xyx

Query #2: This and the following lines I need. And so on.

在“Alignments”这个词之前总是恰好有两个回车符。所以基本上我需要从查询 #.: 到 Alignments 的所有行。

我尝试了以下正则表达式,但我只恢复了第一行。

ggrep -P 'Query #.*?(?:[\r\n]{2}|\Z)'

我已经通过多次迭代测试了正则表达式 at Regex101 ,但我还没有找到答案。

预期的输出是:

Query #1.   Text.

Lines I need to extract

Query #2: This and following lines I need.

Lines I need.

Query #....

最佳答案

通过pcregrep,你可以使用

pcregrep -oM 'Query #.*(?:\R(?!\R{2}).*)*' file.txt > results.txt

这里,

  • o - 输出匹配的文本
  • M - 启用跨行匹配(将行结尾放入“模式空间”)
  • 查询 #.*(?:\R(?!\R{2}).*)* 匹配
    • 查询# - 文字
    • .* - 行的其余部分
    • (?:\R(?!\R{2}).*)* - 零个或多个换行符序列 (\R) 不是紧接着是两个换行符序列 ((?!\R{2})),然后是该行的其余部分。

测试截图:

enter image description here

关于正则表达式选择多行,直到两个连续的新行在 Mac 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71113388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com