Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在java替换方法中使用美元符号($)。它正在引发运行时异常_Java_Regex_Runtime Error_Dollar Sign - Fatal编程技术网

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

无法在java替换方法中使用美元符号($)。它正在引发运行时异常,java,regex,runtime-error,dollar-sign,Java,Regex,Runtime Error,Dollar Sign,我正在使用下面的正则表达式替换方法 String str1="dog0123456yrhh900man"; String replacedStr=str1.replaceAll("(man|dog)|[^0-9]","$1"); 输出:dog0123456900man 这在正常的main方法中工作良好 但是,当我在我的应用程序代码中包含这个与linux一样在jboss服务器和环境中运行的逻辑时,由于这个美元符号,我得到了运行时错误 我也试过了。它正在影响预期的产量 replacedStr=st

我正在使用下面的正则表达式替换方法

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

这在正常的main方法中工作良好

但是,当我在我的应用程序代码中包含这个与linux一样在jboss服务器和环境中运行的逻辑时,由于这个美元符号,我得到了运行时错误

我也试过了。它正在影响预期的产量

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$1$1900man

我还尝试了
Matcher.quoteReplacement()

replacedStr=str1.replaceAll(“(人|狗)|[^0-9]”,Matcher.quoteReplacement($1”)它不工作


请帮我提个建议

如果您在windows上进行测试,但您的生产环境是linux,那么我正在开发的应用程序也会遇到类似的问题(尽管情况正好相反)。问题似乎与两个操作系统之间的字体差异或字符编码差异有关。在linux机器上安装兼容的字体包是值得的。如果这不起作用,您必须在应用程序中使用字符编码来找到:或者是字符等价物,或者将有关字符串的编码更改为可在您的生产环境中使用的格式。

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

这在ideone()上可以正常工作。@Vinoth jboss运行的Java版本是什么?您还可以显示得到的错误吗?@assylias jboss版本5和java版本1.5above@Vinoth您是否使用同一版本的JRE在main中进行了测试(以确保它在特定版本的java中不是bug)?“获取运行时错误”什么错误?这在ideone()上运行良好。@Vinoth jboss运行在哪个版本的java上?您还可以显示得到的错误吗?@assylias jboss版本5和java版本1.5above@Vinoth您是否使用同一版本的JRE在main中进行了测试(以确保它在特定版本的java中不是bug)?“获取运行时错误”什么错误?