假设,我有以下异常:
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
但都不起作用。
当一个lookbehind匹配不需要的部分时,它只是从它的第二个字母开始匹配。
你能帮我吗?
你的正则表达式很接近,它只需要锚定到行的开头,然后负向前导需要一个.*
来允许verylongfoo
在字符串中的任何位置:
^(?!.*verylongfoo).*\sjava\.lang\.NullPointerException
带有单线和多线串的Regex101演示是here。