java - 正则表达式 Notepad++ OK JDK 1.6 NOK

标签 java regex java-6

作为实习的一部分,我必须使用正则表达式来解析日志文件。它是 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/

相关文章:

java - 从数据库设置图像

Java 以编程方式从 key /证书中读取信息

java - 按 Java 中第一个找到的字符串拆分

compilation - ant在JDK1.6运行时如何编译类到JDK1.5

java - 从命令行传递数组参数而不是java中的扫描仪

Java从String到bytes的转换不是一对一的吗?

objective-c - 创建正则表达式以匹配自定义格式

c# - 数字和斜杠的正则表达式

php - 正则表达式替换周围的字符,同时保留之间的字符串

java - 使用 Eclipse 为 java 6 编译 java 7