所以,簡而言之,我試圖創建一個正則表達式,我可以在將要提交JSON對象到我的PHP服務器的Java程序中使用。輸入消毒不破壞JSON語法
myString.replaceAll(myRegexString,"");
我的問題是,我絕對沒有好與正則表達式,並添加到我需要轉義字符正確作爲其存儲在一個字符串,然後還要正確轉義正則表達式裏面的人物。好小子。
我想出什麼樣的主意是這樣的:
String myRegexString = "[\"',{}[]:;]"
的第一個反斜槓是逃跑外引號,以獲得一個「在那裏,然後我突然想到那{}和[]也正則表達式。命令我會逃跑的,以及像:?提前
String myRegexString = "[\"',\{\}\[\]:;]"
感謝萬一它不是明確從上面唯一的字符我真的很在乎這個時刻的例子是: " { } [ ] ,
和; : '
一般sqlinj保護。
UPDATE:
這是最後的正則表達式: [\\Q\"',{}[\]:;\\E]
爲別人好奇。謝謝阿米特!
對於那些逃脫的角色,你需要雙反斜線。例如。 ''[[\\'',\\ {\\} \\ [\\] \\ :;]「'以便Java將反斜線字符傳遞給正則表達式引擎。否則,Java將查找特殊字符'\ [''這不存在 –
@Matt,'''不能被雙重轉義(否則會發生編譯時錯誤)。另外,''''''''''和':'完全不需要在字符類中進行轉義。 –