正则表达式模式从两个字符串中提取url链接

时间:2018-01-15 06:08:30

标签: regex

我有两个字符串,我必须在其中排序网址。我想要一个正则表达式模式来提取它们

https://l.facebook.com/l.php?u=http%3A%2F%2Febay.to%2F2EyH7Nq&h=ATNHM5kACc4rh_z68Ytw__cNCzJ63_iPezd_whc0PjcsN4qj1PfdJgFXyrOKM3-biqPm7eAXTOc5LD6r-7JXhRsqsqEHUs0jaJkjvm_QWf6sqbHQmS63q6P0_NcQoUa86Az5EttNT9xJb_evKBaiFxW7e7v2afJQn2zNxz5lQ8xgxhMcEFuJ3hUiSYUMEemKFB2LSIgAZFibRv4GeRrTk8hxFaArkBuAhQaXQFd4jX-aQuUYhjD0ErV5FY-D4gFMpb0lFCU7SyBlRpkUuOcHVjwjxN-_g6reMYwo8loAJnJD
/redirect?q=http%3A%2F%2Fgoo.gl%2FIW7ct&redir_token=PV5sR8F7GuXT9PgPO_nkBFLABQx8MTUxNjA3OTY5MEAxNTE1OTkzMjkw&v=7wmIyD1fM4M&event=video_description

输出将来自第1和第2个链接: -

http%3A%2F%2Febay.to%2F2EyH7Nq
http%3A%2F%2Fgoo.gl%2FIW7ct

请帮帮我。 我已经用过: - (http|https).*?&

但它没有在第一个网址上工作。

3 个答案:

答案 0 :(得分:2)

你可以试试这个:

=(https?[^&]*)

Demo

如果你的正则表达式有可能是后视,那么你也可以尝试这样做,这样可以确保不会捕获等号:

(?<=)(https?[^&]*)

Demo 2

答案 1 :(得分:1)

试试这个正则表达式!

我也通过regex101附加正则表达式的输出。

http%3A%2F%2F(.*)%2F(.*[^&])(?=&)

output

答案 2 :(得分:0)

您可以使用此模式仅捕获goo.glebay.to链接:

(http%3A%2F%2F(ebay\.to|goo\.gl)%2F[^&]*)&

Demo