Mar*_*rko 1 java regex string exception
我在Java类中抛出一个新的异常,其中一些字符通常用于正则表达式.
throw new Exception("(): Fake timeout for message(.*XYZV.* fakeApp .*).");
Run Code Online (Sandbox Code Playgroud)
这个可以吗?或者我需要逃脱它们吗?
您需要仅在将字符串视为正则表达式的位置转义特殊的正则表达式字符.例如,replaceAll将其第一个参数视为正则表达式,因此您需要转义要像普通字符一样解释的元字符.
一般来说,传递给Exception类的构造函数的消息中没有这样的解释,因此不需要转义这些字符.
但是,您可能有一个用于日志分析的自定义工具,它可能将消息的一部分解释为正则表达式.在这种情况下,答案取决于您使用自定义工具执行的操作,因为在将消息解释为正则表达式(或其他任何内容)的时候,Java库完全脱离了循环.