无效 java regex 转义序列未在 eclipse 中标记
Invalid java regex escape sequences not flagged in eclipse
我教授基于 Java 的高级计算机科学 class,我们主要使用 Eclipse IDE。我最近有一个作业,学生在 Java 中探索正则表达式,并 运行 遇到一个问题,其中错误形成的转义序列实际上在 Eclipse 中传递,但在 运行 时编译失败 java通过我的测试自动化。这是 应该失败 但在 eclipse 上不会失败的正则表达式示例:
in = in.replaceAll(" ([^\s]*([^0-9\+|\-|\/|\(|\)|\*|\.|\s]+|[^0-9]\.|\.[^0-9])[^\s]*) "," Error:"+separator+" ");
在 eclipse 外部编译时,此代码正确编译失败并显示以下错误消息:
RegularExpressions.java:60: error: illegal escape character
in = in.replaceAll(" ([^\s]*([^0-9\+|\-|\/|\(|\)|\*|\.|\s]+|[^0-9]\.|\.[^0-9])[^\s]*) "," Error:"+separator+" ");
^
一直想不通为什么eclipse会忽略这个问题。我假设我需要更新某个地方的某些设置,但我还没有找到它。当学生的代码“对他们有用”但后来我的测试失败时,这对学生来说尤其令人沮丧。
如有任何帮助,我们将不胜感激。
我教授基于 Java 的高级计算机科学 class,我们主要使用 Eclipse IDE。我最近有一个作业,学生在 Java 中探索正则表达式,并 运行 遇到一个问题,其中错误形成的转义序列实际上在 Eclipse 中传递,但在 运行 时编译失败 java通过我的测试自动化。这是 应该失败 但在 eclipse 上不会失败的正则表达式示例:
in = in.replaceAll(" ([^\s]*([^0-9\+|\-|\/|\(|\)|\*|\.|\s]+|[^0-9]\.|\.[^0-9])[^\s]*) "," Error:"+separator+" ");
在 eclipse 外部编译时,此代码正确编译失败并显示以下错误消息:
RegularExpressions.java:60: error: illegal escape character
in = in.replaceAll(" ([^\s]*([^0-9\+|\-|\/|\(|\)|\*|\.|\s]+|[^0-9]\.|\.[^0-9])[^\s]*) "," Error:"+separator+" ");
^
一直想不通为什么eclipse会忽略这个问题。我假设我需要更新某个地方的某些设置,但我还没有找到它。当学生的代码“对他们有用”但后来我的测试失败时,这对学生来说尤其令人沮丧。
如有任何帮助,我们将不胜感激。