gpt4 book ai didi

java - 无效的 java 正则表达式转义序列未在 Eclipse 中标记

转载 作者:行者123 更新时间:2023-12-02 01:57:09 26 4
gpt4 key购买 nike

我教授基于 Java 的高级计算机科学类(class),我们主要使用 Eclipse IDE。我最近有一项作业,学生们探索了 Java 中的正则表达式,并遇到了一个问题:错误形成的转义序列实际上在 Eclipse 中传递,但在运行我的测试自动化时,java 编译失败。下面是一个应该失败但在 eclipse 上却不会失败的正则表达式示例:

in = in.replaceAll(" ([^\s]*([^0-9\\+|\\-|\\/|\\(|\\)|\\*|\\.|\\s]+|[^0-9]\\.|\\.[^0-9])[^\s]*) "," Error:$1"+separator+" ");

在 Eclipse 外部编译时,此代码无法正确编译,并显示以下错误消息:

RegularExpressions.java:60: error: illegal escape character
in = in.replaceAll(" ([^\s]*([^0-9\\+|\\-|\\/|\\(|\\)|\\*|\\.|\\s]+|[^0-9]\\.|\\.[^0-9])[^\s]*) "," Error:$1"+separator+" ");
^

我一直无法弄清楚为什么 eclipse 会忽略这个问题。我假设某个地方有一些设置需要更新,但我还没有找到。当学生的代码“对他们有用”但随后未通过我的测试时,这对学生来说尤其令人沮丧。

任何帮助将不胜感激。

最佳答案

\s 是 Java 15 及更高版本中有效的 Java 空格转义 (JLS §3.10.7 )

Eclipse 中有一个错误 see here当语言级别低于 15 时,它接受 \s。这将在 2021-12 (4.22) 中修复

关于java - 无效的 java 正则表达式转义序列未在 Eclipse 中标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69509072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com