正则表达式在java中的URL中查找编码字符串

时间:2011-04-06 17:33:26

标签: java regex encoding

我需要查找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

提前致谢

4 个答案:

答案 0 :(得分:2)

您只需使用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.");                                                                                                                                
                }                                                                                                                                                                                          
        }                                                                                                                                                                                                  
}

答案 1 :(得分:0)

如果你问的是因为你想要编码网址(如果它还没有被编码),那么最简单的方法是解码然后重新编码。这样你就可以保证最终得到一个编码的网址。

答案 2 :(得分:0)

//正则表达式尝试使用任何URL编码,或..用于目录遍历

*%[0-9A-FA-F] + |。。\ \

答案 3 :(得分:-4)

只需找一个'%'后跟[0-F] - 你就会知道。