正则表达式结果输出单个匹配项,多个匹配项

时间:2019-01-25 17:08:27

标签: regex

我在“错误消息”字段中有一个包含多个换行符的文件。 我需要将换行符替换为空格,以便可以将其作为单行加载。

但是我无法捕获多个匹配项。 我的正则表达式输出整个文件的单个匹配项。 我需要创建正则表达式的帮助,这将为我提供的示例提供3个匹配项。

https://regex101.com/r/DoED69/1

使用正则表达式

^breakmantis.*;(Error;[\s\S]*;Regular;)[\s\S]*breakmantis

**带换行符的当前文件:**

name;brand;environment;center;Error
breakmantis;Kordel;Production;Bleep Eyeglow;Error;"The message did not pass the validation: 
Error Message='PriceTag' is mandatory, under field Price.
Error Message='PriceAmount' is mandatory, under field Price.
Error Message='BaseQuantity' is mandatory, under field Price.";Regular;;;;24 Apr 2019 14:34 CEST
breakmantis;Kordel;Production;Bleep Eyeglow;Error;"The message did not pass the validation: 
Error Message='PriceTag' is mandatory, under field Price.
Error Message='PriceAmount' is mandatory, under field Price.
Error Message='BaseQuantity' is mandatory, under field Price.";Regular;;;;24 Apr 2019 14:35 CEST
breakmantis;Kordel;Production;Bleep Eyeglow;Error;"The message did not pass the validation: 
Error Message='PriceTag' is mandatory, under field Price.
Error Message='PriceAmount' is mandatory, under field Price.
Error Message='BaseQuantity' is mandatory, under field Price.";Regular;;;;24 Apr 2019 14:36 CEST

预期结果:

breakmantis;Kordel;Production;Bleep Eyeglow;Error;"The message did not pass the validation: Error Message='PriceTag' is mandatory, under field Price.Error Message='PriceAmount' is mandatory, under field Price.Error Message='BaseQuantity' is mandatory, under field Price.";Regular;;;;24 Apr 2019 14:34 CEST
breakmantis;Kordel;Production;Bleep Eyeglow;Error;"The message did not pass the validation: Error Message='PriceTag' is mandatory, under field Price.Error Message='PriceAmount' is mandatory, under field Price.Error Message='BaseQuantity' is mandatory, under field Price.";Regular;;;;24 Apr 2019 14:35 CEST
breakmantis;Kordel;Production;Bleep Eyeglow;Error;"The message did not pass the validation: Error Message='PriceTag' is mandatory, under field Price.Error Message='PriceAmount' is mandatory, under field Price.Error Message='BaseQuantity' is mandatory, under field Price.";Regular;;;;24 Apr 2019 14:36 CEST

2 个答案:

答案 0 :(得分:0)

尝试匹配:

  

\ n(错误消息=)

并替换为

  

\ 1

在替换中添加前导空格以适合您的需求。

答案 1 :(得分:0)

那怎么样?

^breakmantis.*;(Error;[\s\S]*?)CEST$

正则表达式: https://regex101.com/r/DoED69/2