[英]Replace “\'” with any other character with String's replace()
我不能用String做一個簡單的操作,用'替換''。
示例: t'est\\'
- > t'est*
我嘗試過使用replace和replaceAll方法:
字符串s的值為: "t'est\\'"
;
s.replaceAll("\'", "*"); -> result: t*est*
s.replaceAll("\\'", "*"); -> result: t*est*
s.replaceAll("\\\'", "*"); -> result: t*est*
s.replaceAll("\\\\'", "*"); -> result: t'est'
s.replace("\'", "*"); -> result: t'est'
s.replace("\\'", "*"); -> result: t'est'
s.replace("\\\'", "*"); -> result: t'est'
s.replace("\\\\'", "*"); -> result: t'est'
但在任何情況下我都沒有得到結果。
你確定s
的價值嗎? '
不是一個有意義的轉義字符,所以如果你寫String s = "t'est\\'"
, s
的值將只是"t'est'"
。 要包含附加的\\
字符,您需要通過編寫String s = "t'est\\\\'"
來轉義它。 然后,我認為"\\\\\\\\'"
將是用於查找它的正則表達式。
怎么樣:
String s="t\'est\\\'";
s = s.replaceAll("\\\\'", "*");
System.out.println(s);
生產:
t'est*
\\'
實際上是一個逃脫'
。 如果你想要一個真正的'你需要逃避斜線,即寫\\\\\\'
然后你需要用\\\\\\\\'
替換它。 在這種情況下,每對斜杠都會產生一個轉義為對於java的斜杠\\
,而得到的\\\\'
\\'
對於正則表達式來說是一個\\'
。
這個怎么樣
String s = "t'est\\'";
System.out.println(s);
System.out.println(s.replace("\\", "*").replace("*'", "*"));
這是輸出的樣子:
t'est\'
t'est*
如果我的理解不正確或需要修改,請告訴我。
你不需要逃避'只是寫
s.replace("'", "*");
替換''
編輯:
如果你想匹配\\'你應該嘗試
s.replace("\\'", "*");
第一個反斜杠將逃脫第二個,'將保持“未轉義”
當你說String s的值為“t'est \\”時,你的意思是它在源中的出現方式嗎? 因為,如果是這樣,你正在使用's'的字符串實際上是“t'est'”,這意味着你永遠不會找到要替換的“\\”。
如果它被聲明為“t'est \\”,那么它將包含“\\”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.