捕获包含URL编码的组

时间:2018-04-27 20:21:04

标签: java android regex

我试过了,但是我找不到任何东西。

我找到了一个正则表达式模式来从facebook链接中提取用户名:

(?:(?:http|https):\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-]*)?

这样做的问题是,如果用户名被编码,它就无法捕获。原始用户名是阿拉伯语。例如,这种链接:

https://www.facebook.com/%D9%82%D8%B1%D9%8A

问题在于百分比,但如何解决?请帮帮我!

1 个答案:

答案 0 :(得分:0)

感谢@mwp我通过解码URL解决了问题,然后再将其传递给匹配器。

link = URLDecoder.decode(link.replaceAll("/$", ""), "UTF-8");

replaceAll()将删除任何尾部斜杠。