gpt4 book ai didi

java - 无法在 java 替换方法中使用美元符号 ($)。它抛出运行时异常

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:57 25 4
gpt4 key购买 nike

我正在使用正则表达式进行替换方法,如下所示,

String str1="dog0123456yrhh900man";
String replacedStr=str1.replaceAll("(man|dog)|[^0-9]","$1");

输出:dog0123456900man

这在正常的 main 方法中工作得很好。

但是当我在 jboss 服务器和 Linux 环境中运行的应用程序代码中包含相同的逻辑时,由于这个美元符号,我收到运行时错误。

我也尝试过以下。它正在影响预期的输出

replacedStr=str1.replaceAll("(man|dog)|[^0-9]","\\$1");
replacedStr=str1.replaceAll("(man|dog)|[^0-9]","\\\\$1");
replacedStr=str1.replaceAll("(man|dog)|[^0-9]","\\\\\\$1");

预期输出:dog0123456900man

实际输出:dog0123456$1$1$1$1900man

我也尝试过Matcher.quoteReplacement()

replacedStr=str1.replaceAll("(man|dog)|[^0-9]",Matcher.quoteReplacement("$1")); 它不起作用。

请帮我提建议

最佳答案

如果您在 Windows 上进行测试,但您的生产环境是 Linux,那么我正在开发的应用程序也遇到了类似的问题(尽管反过来)。该问题似乎与两个操作系统之间的字体差异或字符编码差异有关。在 Linux 机器上安装兼容的字体包可能是值得的。如果这不起作用,您将不得不在应用程序中使用字符编码来查找:等效字符,或者将相关字符串的编码更改为适用于您的生产环境的形式。

关于java - 无法在 java 替换方法中使用美元符号 ($)。它抛出运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35206529/

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