我試圖使用Java的下面的正則表達式報價,這是應該匹配任何lang="2-char-lang-name"
:Java中,逃逸(b)使用正則表達式
String lang = "lang=\"" + L.detectLang(inputText) +"\"";
shovel.replaceFirst("lang=\"[..]\"", lang);
我知道,一個單斜槓將通過正則表達式來解釋作爲一個斜槓而不是一個轉義字符(所以我的代碼不起作用),但如果我轉義斜線,"
將不會再逃脫,我會得到一個語法錯誤。
換句話說,如何在正則表達式中包含"
? "lang=\\"[..]\\""
將不起作用。我也嘗試了三次斜線,也沒有任何匹配。
我也知道你不使用正則表達式來解析XML/HTML的一般規則。 (並且shovel
是XML)但是,我所做的只是查找位於XML前30個字符內的lang
屬性,並且我想替換它。在這種情況下使用正則表達式真的是個不錯的主意嗎?我不認爲使用DOM會更好/更高效。
啊是的,我並沒有真正用'[..]'來解析他在那裏做什麼。我認爲在'[]'內部'''是按字面解釋的,所以'[..]'意味着「任何一個單獨的字符都是'.'或'''」。 – OpenSauce
當然......你說得對,'猜我的正則表達式太生鏽了。謝謝。 – Spectraljump