Skip to content

[BUG]: unsupport Perl Syntax :'(?=' #2129

Answered by Takuka0311
KnightBlood asked this question in Help
Discussion options

You must be logged in to vote

这是一个常见的问题,我会把它转到discussion。

Go的processor_regex插件使用的正则是"regexp"包,确实不支持Perl语言的所有正则表达式语法,包括' (?='。Go的"regexp"包支持的是RE2风格的正则表达式,复杂度过高的操作,比如回溯(如先行断言和后行断言)不被支持。

Go插件里,processor_grok使用的是"github.com/dlclark/regexp2"包,这个包是支持'(?=' 这样的操作的。此外,可以用C++的processor_parse_regex_native 插件,也可以支持。

如果有兴趣贡献,可以把processor_regex使用的正则库改为"github.com/dlclark/regexp2",不过这需要补充一定的ut和benchmark保证性能和稳定性不受影响

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by Takuka0311
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Help
Labels
bug Something isn't working
2 participants
Converted from issue

This discussion was converted from issue #1804 on March 05, 2025 06:03.