假设我有以下例外情况:
E 180822 133447.332 [pool-9982-thread-1] verylongfoo
java.lang.NullPointerException
我需要的是仅匹配那些包含java.lang.NullPointerException
但缺少verylongfoo
部分的异常。
它应该只是与Perl 5兼容的正则表达式,而不是用Perl编写的程序
我尝试过类似的事情
.*(?<!verylongfoo)[\s]java\.lang\.NullPointerException
还有这个
(?!verylongfoo).*\sjava\.lang\.NullPointerException
但都不起作用。
后向匹配项与不需要的部分匹配时,它只是从其第二个字母开始匹配。
你能帮我吗?
答案 0 :(得分:1)
您的正则表达式很接近,只需将其锚定到行的开头,然后负向前瞻,则需要使用.*
来允许verylongfoo
位于字符串中的任意位置:
^(?!.*verylongfoo).*\sjava\.lang\.NullPointerException
具有单行和多行字符串的Regex101演示程序为here。