多个匹配并排除字符串开头

问题描述 投票:0回答:0

我有标签中的这种类型的文本:

RP/HDQ1S/HDQ1SJFDEAK/C8HJ/2024837        20APR23/0339Z   GLS123 DATA 001 OS/AF1638 J 16APR 7 CDGHAJ LK1 1250 1420/LK *1A/E* 002 OS/AF1439 Q 20APR 4 HAJCDG LK1 0600 0735/LK *1A/E* 003 OS/AF9466 Q 20APR 4 CDGRNS LK1 1235 1340/LK *1A/E* 004 RF-HDQRM1S 081330 DK07E856C11618 300AB28DB011CD//HDQ1SJF DEAK/C8HJ/20248373/LBG/1S/T/FR/EUR CR-HDQ RM 1S 08MAR133 0Z

我正在尝试合并这样的行:

RP/HDQ1S/HDQ1SJFDEAK/C8HJ/2024837        20APR23/0339Z   GLS123 DATA 000 OS/AF1638 J 16APR 7 CDGHAJ LK1 1250 1420/LK *1A/E* 000 OS/AF1439 Q 20APR 4 HAJCDG LK1 0600 0735/LK *1A/E* 000 OS/AF9466 Q 20APR 4 CDGRNS LK1 1235 1340/LK *1A/E* 000 RF-HDQRM1S 081330 DK07E856C11618 300AB28DB011CD//HDQ1SJFDEAK/C8HJ/20248373/LBG/1S/T/FR/EUR CR-HDQ RM 1S 08MAR1330Z

使用以下表达式,我设法排除了第一行,包含“RP”,但我只得到一个匹配项,我需要得到两个:

(^(?!RP).+)((\n        )|(\n      ))

我在 JavaScript 中使用它来替换:

replace(/^(?!RP)(.+)((\n        )|(\n      ))/gm, function (match, p1) { return p1 });

目标是如果新行以 6 或 8 个空格开头,则将每个新行与前一行合并,并忽略以 RP 开头的第一行。

javascript regex replace expression newline
© www.soinside.com 2019 - 2024. All rights reserved.