簡體   English   中英

string.replaceAll()如何工作?

[英]How does string.replaceAll() work?

我正在制作一個替換字符串某個部分的程序。

String x = "hello";
x=x.replaceAll("e","\\\\s");
System.out.println(x);

輸出: h \\ sllo

但對於

System.out.println("\\s");

輸出: \\ s

為什么我們在第一種情況下需要額外的轉義字符。

  • 正則表達式中的單個\\字符需要\\\\
  • 但是Java字符串也會解釋反斜杠,因此你需要為每個\\轉義字符串,因此你需要2 + 2 = 4個反斜杠來匹配單個\\ (2個用於字符串,2個用於正則表達式引擎)
  • 另請注意, String#replaceAll方法的第二個參數也由正則表達式引擎解釋,因為可能存在反向引用,這也是同樣的正則表達式規則同樣適用於替換字符串的原因。
  • 你的正則表達式是使用文字\\替換字符串,后跟文字s

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM