String の replaceAll の使い方を本当に知っていますか?

最近Javaの文字列置換において、置換対象の文字列に正規表現の記号が含まれていてエラーになるという問題に遭遇しました。

エラーの例:

public class ReplaceAllTest {

    public static void main(String[] args) {
        String data="小明今天放学回家[遇到一个小偷在偷自行车";
        data=data.replaceAll("(遇到)","抓住");
        System.out.println(data);
    }
}

結果: 

 解決:

//Pattern.quote和Matcher.quoteReplacement防止特殊字符如[导致报错,原理特殊字符,在正则里需要加\\反斜杆进行转义
surplusStr = surplusStr.replaceAll(Pattern.quote(conditionStr),  Matcher.quoteReplacement(""));

原則: replaceAll の最下層は正規表現を使用して文字列を置換するため、特殊記号がエスケープされていない場合、正規表現の置換時にエラーが報告されるため、エスケープする必要があります。

おすすめ

転載: blog.csdn.net/qq_38623939/article/details/129839301