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

发布于 2024-10-30 14:48:47 字数 165 浏览 1 评论 0原文

我需要确定 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

提前致谢

I need to find whether the URL is encoded or not. As the input is dynamic it will be helpful if i know the regex to check it.

example -
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

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

逆光下的微笑 2024-11-06 14:48:48

您可以简单地使用 URLDecoder 来检查是否URL 包含或不包含编码部分,而不是构建自定义正则表达式:

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.");                                                                                                                                
                }                                                                                                                                                                                          
        }                                                                                                                                                                                                  
}

You could simply use URLDecoder to check whether the URL contained encoded parts or not rather than building a custom regular expression:

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.");                                                                                                                                
                }                                                                                                                                                                                          
        }                                                                                                                                                                                                  
}
女中豪杰 2024-11-06 14:48:48

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

.. .*%[0-9a-fA-F]+|\.\.

// regex for attempting to use any URL encoding, or .. for directory traversal

.*%[0-9a-fA-F]+|\.\.

骄兵必败 2024-11-06 14:48:48

如果您问这个问题是因为您想要对尚未编码的网址进行编码,那么最简单的方法就是对其进行解码,然后再次对其进行编码。这样你就可以保证最终得到一个编码的 url。

If you are asking because you want to encode the url if it is not already encoded, then the easiest thing to do is decode it then encode it again. That way you are guaranteed to end up with an encoded url.

呆° 2024-11-06 14:48:48

只需查找“%”后跟 [0-F] - 您就会知道。

Just look for a '%' followed by [0-F] - you'll know.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文