String#replaceAll javadoc Gönderen:
Not olduğu ters eğik çizgi (\) ve yedek dizesindeki dolar işaretleri ($), sonuçların, bir tam değiştirme dizesi olarak kabul edilen 'dan farklı olmasına neden olabilir; Matcher.replaceAll. İsterseniz, bu karakterlerin özel anlamını bastırmak için Matcher.quoteReplacement (java.lang.String) öğesini kullanın.
Yani keyfi bir yedek dizesi kaçan aşağıdaki gibi yapılabilir:
String s = " $$";
s = s.replaceAll("\\s+\\$\\$", Matcher.quoteReplacement("$$"));
Ayrıca desen kaçan, ben aynı problem vardı Pattern#quote
String s = " $$";
s = s.replaceAll("\\s+" + Pattern.quote("$$"), Matcher.quoteReplacement("$$"));
da beni açıklayabilir misiniz kaçan \\ tarafından Yazınsal $ değiştirilsin mi? – FranXho
Normal bir ifade olarak davranmıyor. Matcher dokümantasyonundan.appendReplacement, "Değiştirme dizesi, önceki eşleşme sırasında yakalanan alt dizelere başvurular içerebilir: Her $ {name} veya $ g oluşumu, sırasıyla ilgili grup (ad) veya grup (g) değerlendirmesinin sonucuyla değiştirilir ... Bir dolar işareti ($), bir ters eğik çizgi (\ $) ile önüne geçerek, yedek dizede bir hazır bilgi olarak eklenebilir. " – user393274