我需要查找URL是否被編碼。由於輸入是動態的,因此如果我知道正則表達式來檢查它將會很有幫助。正則表達式在java中的URL中查找編碼的字符串
示例 -
www.test.com/?t=%E3%83%81%E3%82%B7%E3%83%BA%E3%83%B3%E3%83%9D%E3% 83%BC%E3%83%AB
在此先感謝
我需要查找URL是否被編碼。由於輸入是動態的,因此如果我知道正則表達式來檢查它將會很有幫助。正則表達式在java中的URL中查找編碼的字符串
示例 -
www.test.com/?t=%E3%83%81%E3%82%B7%E3%83%BA%E3%83%B3%E3%83%9D%E3% 83%BC%E3%83%AB
在此先感謝
你可以簡單地使用URLDecoder查詢的網址是否包含編碼部分或沒有,而不是建立一個自定義的正則表達式:
class UrlTest {
public static void main(String[] args) throws java.io.UnsupportedEncodingException {
String url = "http://example.com/%20foo";
if(url.equals(java.net.URLDecoder.decode(url, "UTF-8"))) {
System.out.println("URL didn't contain encoded parts.");
} else {
System.out.println("URL contained encoded parts.");
}
}
}
您還應該捕獲IllegalArgumentException。事實上,如果輸入的URL沒有編碼,它可能包含非法字符或字符序列... – 2011-04-06 17:53:08
我需要對已編碼的URL中的任何字符串進行編碼。我不應該編碼整個網址。 – Balaji 2011-04-06 18:01:52
每當文本被URL編碼時都無法辨別 - 它可能包含%20作爲普通內容 – 2012-07-04 14:20:58
//正則表達式嘗試使用任何URL編碼,或爲..目錄遍歷
。*%[0-9a-fA-F] + | \。\。
你的意思是* encoded *是什麼意思?你能向我們展示一些例子嗎? – 2011-04-06 17:34:55
也許他的意思是,例如,空間變成了「%20」。 ;) – 2011-04-06 17:35:37
輸入什麼?什麼網址?請發佈代碼並解釋您遇到的問題。 – 2011-04-06 17:35:51