難以用轉義報價替換報價。我有一個字符串,其值爲'Foo「欄」foobar「,我試圖用轉義引號替換引號,並且它不起作用。我快瘋了。Java String.replaceAll不會替換帶有轉義報價的報價
s=s.replaceAll("\"","\\\"");
我希望s的值爲'foo \「bar \」foobar',但它沒有。任何幫助?
難以用轉義報價替換報價。我有一個字符串,其值爲'Foo「欄」foobar「,我試圖用轉義引號替換引號,並且它不起作用。我快瘋了。Java String.replaceAll不會替換帶有轉義報價的報價
s=s.replaceAll("\"","\\\"");
我希望s的值爲'foo \「bar \」foobar',但它沒有。任何幫助?
replaceAll
使用正則表達式 - 即使在替換中,反斜槓也只是轉義下一個字符。
使用replace
而不是和它的罰款...或者,如果你想使用正則表達式的形式,你可以雙擊第二個參數中的反斜槓:
String after = before.replaceAll("\"", "\\\\\"");
,如果你需要匹配這可能是有用的使用正則表達式輸入,但我強烈建議使用非正則表達式,除非你真的需要正則表達式的行爲。
我個人認爲這是在爲String
方法是錯誤的使用正則表達式開始 - 比如foo.split(".")
這將各執每個字符而不是時間,完全出乎意料的粗心的開發者。
使用s = s.replace("\"", "\\\"");
,這是非正則表達式版本。
s=s.replaceAll("\"","\\\\\"");
但是,你應該真的與replace(...)
一起去看看其他人的建議。
使用;
s=s.replaceAll("\"","\\\\\"");
請按照以下程序使用> s.replace(「/"."//」);
public class stringbackslash {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="\";
s=s.replace("\", "\\");
System.out.println(s);
}
}
你需要逃避都替換所有參數,因爲它們是正則表達式!
@Test
public void testReplace() {
assertEquals("foo\\\"bar\\\"",
"foo\"bar\"".replaceAll("\\\"", "\\\\\\\""));
}
所以,如果你想要寫"
你需要躲避正則表達式 - >\"
而是因爲你在Java中,你需要逃避的java到\
和"
,讓您得到\\\\"
。 (這是搜索參數)。
對於你想擁有\"
替換參數 - >在正則表達式:\\\"
- > Java中\\\\\\\"
正是我以爲上面缺少的解釋!謝謝 – Engineiro
String str = "'Foo \"Bar\" Bar'";
System.out.println(str);
System.out.println(str.replaceAll("\"", "\\\\\""));
+1,爲'分裂( 「」)'。我討厭這個...... –