正则表达式在java中查找URL中的编码字符串
我需要确定 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以简单地使用 URLDecoder 来检查是否URL 包含或不包含编码部分,而不是构建自定义正则表达式:
You could simply use URLDecoder to check whether the URL contained encoded parts or not rather than building a custom regular expression:
// 用于尝试使用任何 URL 编码的正则表达式,或用于目录遍历的
.. .*%[0-9a-fA-F]+|\.\.
// regex for attempting to use any URL encoding, or .. for directory traversal
.*%[0-9a-fA-F]+|\.\.
如果您问这个问题是因为您想要对尚未编码的网址进行编码,那么最简单的方法就是对其进行解码,然后再次对其进行编码。这样你就可以保证最终得到一个编码的 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.
只需查找“%”后跟 [0-F] - 您就会知道。
Just look for a '%' followed by [0-F] - you'll know.