[BUG]: unsupport Perl Syntax :'(?=' #2129
Answered
by
Takuka0311
KnightBlood
asked this question in
Help
-
unsupport Perl Syntax :'(?=' `
` |
Beta Was this translation helpful? Give feedback.
Answered by
Takuka0311
Mar 5, 2025
Replies: 1 comment
-
这是一个常见的问题,我会把它转到discussion。 Go的 Go插件里, 如果有兴趣贡献,可以把 |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
Takuka0311
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
这是一个常见的问题,我会把它转到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保证性能和稳定性不受影响