【发布时间】:2018-04-24 15:32:14
【问题描述】:
我正在尝试提取两行字符串之间的内容。这是文本的外观
Hhhshhajsjsjsj
Hshhejjsjsmk
Hahjajajajajja
Message-ID: b123467
abc
def
Kjhshjsjs
Received:
Hdjjddjdjdjdjd
我需要将文本保留在“Message-ID”和“Received:”之间
我试过 '@“(?:\G(?!\A)[X-Message-ID:)\r?\n(.*)(?>\r?\nReceived:(?=S\ r?$))?'
我有一个错误“找不到文本”
【问题讨论】:
-
此文本可以在您的文件中出现多次吗?我的意思是,您是否希望在多个 message-id/received 标记之间提取 multiple 文本?或者,这里只有一次捕获?
-
keep相对于整个样本是什么意思? -
嗨蒂姆。文件中有多个捕获。我只需要 Message-ID: 和 Received: 之间的文本:
-
您可以尝试
(?s)(?<=Message-ID:)(.*?)(?=Received:)|.并替换为(?{1}$1\n:)。它应该适用于较小的文件。这也将删除Message-ID:和Received:,顺便说一句。