作为实习的一部分,我必须使用正则表达式来解析日志文件。它是 Java 日志,我在异常检测方面遇到了问题。
事实上,我的正则表达式适用于 Notepad++ 但不适用于 Java (1.6),matcher.find() 花费了非常、...、非常长的时间,最终找到 0 个匹配项。
这是我的正则表达式:
(.*\bERROR\b.*)\r?\n((\tat|.*[Ee]xception|\t\.\.\.|\r?\n|ORA-).*\r?\n)+(^(?!.*ERROR).+)\r?\n
你知道为什么吗?
谢谢。
最佳答案
反斜杠 \
是 java 编程语言和正则表达式的转义字符。因此,当在 Java(和许多其他编程语言)中为正则表达式添加反斜杠时,您必须复制反斜杠。
例如写 \\s
而不是 \s
因为需要正则表达式的语法。
关于java - 正则表达式 Notepad++ OK JDK 1.6 NOK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16665525/