正则表达式:在加号之前删除一个字符?

时间:2019-07-26 13:41:27

标签: regex notepad++

我正在使用Notepad ++,并且我正在寻找一个正则表达式,该表达式可以删除出现在加号|之前而不是之后的竖线字符+的所有出现。

一行示例:

290167 275b93| e4dcab59949+k70ba3f31cc63|4d4746bd758ff618afc82556

这必须是:

290167 275b93 e4dcab59949+k70ba3f31cc63|4d4746bd758ff618afc82556

这是我尝试隔离但没有结果的正则表达式:

[|](?<=[+])

(行中包含空格字符)

2 个答案:

答案 0 :(得分:0)

您处在正确的轨道上,但是查找模式略有偏离。试试这个版本:

Find:    [|](?=.*[+])
Replace: (empty string)

这是一个工作示例:

Demo

这里想要的逻辑是查找所有管道,只要字符串的后面出现加号即可。正向前进(?=.*[+])断言了这一点。

答案 1 :(得分:0)

您需要提前寻找在线上其他地方的+(?<=位于后面,您不希望这样(超前语法为(?=),也不需要单个字符的字符集:

\|(?=[^+\n]*\+)

并替换为空字符串。

https://regex101.com/r/MpuWfp/2