如何排除正则表达式匹配后的最后一个词?
How to exclude the last word after the regex match?
这不是 python 或 java 编程的一部分,而是 grok 模式的一部分。我有以下格式的传入数据
online market failure ACC20ZM::Test::BNC099
online market failure;Test;BNC099
我需要提取数据,直到第一次出现特殊字符 ;
或 :
,不包括字符本身。
预期输出是 online market failure
我能够使用 ^([^:|;])+
获得第二种格式,但第一种格式将按预期 return online market failure ACC20ZM
并且我试图在其中排除 ACC20ZM。
注意:字段中的消息不固定,它一直在变化(包括我要排除的词),所以没有固定的词数。此外,它是一个以上述格式获取数据的字段(第一种类型或第二种类型,但一次不能同时使用这两种类型)。我正在尝试编写一个应该能够处理这两种格式的正则表达式模式。我特别在寻求帮助,以使用提到的正则表达式模式排除匹配后的单词。
你可以试试这个;
^([^:|;])+(?=(\s\w*:|;))
这不是 python 或 java 编程的一部分,而是 grok 模式的一部分。我有以下格式的传入数据
online market failure ACC20ZM::Test::BNC099
online market failure;Test;BNC099
我需要提取数据,直到第一次出现特殊字符 ;
或 :
,不包括字符本身。
预期输出是 online market failure
我能够使用 ^([^:|;])+
获得第二种格式,但第一种格式将按预期 return online market failure ACC20ZM
并且我试图在其中排除 ACC20ZM。
注意:字段中的消息不固定,它一直在变化(包括我要排除的词),所以没有固定的词数。此外,它是一个以上述格式获取数据的字段(第一种类型或第二种类型,但一次不能同时使用这两种类型)。我正在尝试编写一个应该能够处理这两种格式的正则表达式模式。我特别在寻求帮助,以使用提到的正则表达式模式排除匹配后的单词。
你可以试试这个;
^([^:|;])+(?=(\s\w*:|;))