gpt4 book ai didi

java - 保留特殊字符的replaceAll类型方法

转载 作者:行者123 更新时间:2023-11-30 04:42:15 25 4
gpt4 key购买 nike

目前,String 类的 replaceAll 方法以及 Matcher.replaceAll 方法将其参数作为正则表达式进行计算。

我遇到的问题是,我传递给这两个方法中的任何一个的替换字符串包含一个美元符号(当然,它在正则表达式中具有特殊含义)。一个简单的解决方法是将我的替换字符串传递给“Matcher.quoteReplacement”,因为这会生成一个带有文字字符的字符串,然后将此清理字符串传递给replaceAll.

不幸的是,我无法执行上述操作,因为我需要保留特殊字符,因为生成的字符串稍后将在需要 reg ex 的操作中使用,如果我转义了所有特殊字符,这将破坏该契约(Contract).

有人可以建议我实现我想做的事情的方法吗?非常感谢。

编辑:为了更清楚的解释,请查找下面的代码示例:

String key = "USD";
String value = "$";

String content = "The figure is in USD";
String contentAfterReplacement;

contentAfterReplacement = content.replaceAll(key, value); //will throw an exception as it will evaluate the $ in 'value' variable as special regex character

contentAfterReplacement = content.replaceAll(key, Matcher.quoteReplacement(value)); //Can't do this as contentAfterReplacement is passed on and later parsed as a regex (Ie, it can't have special characters escaped).

最佳答案

为什么不使用 String#replace方法而不是 replaceAllreplaceAll 使用正则表达式,但 replace 在替换字符串中不使用正则表达式。

关于java - 保留特殊字符的replaceAll类型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11983914/

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