【问题标题】:Regex Pattern to extract url links from two string正则表达式模式从两个字符串中提取 url 链接
【发布时间】:2018-06-23 18:34:42
【问题描述】:

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

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

输出将来自第一个和第二个链接:-

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

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

但它不适用于第一个网址。

【问题讨论】:

标签: regex


【解决方案1】:

你可以试试这个:

=(https?[^&]*)

Demo

如果在您的正则表达式风格中可以进行向后看,那么您也可以尝试这样做,这将确保不会捕获等号:

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

Demo 2

【讨论】:

  • 可能值得添加一个捕获组,以便轻松放弃 =... 或向后看 ;)
  • 你是对的 MatBailie,与此同时,我试图匹配所需的东西,因此出现了后向正则表达式。顺便说一句,将捕获组添加到第一个解决方案中。
【解决方案2】:

试试这个正则表达式!

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

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

【讨论】:

    【解决方案3】:

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

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

    Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2018-11-22
      • 1970-01-01
      • 2011-09-02
      • 2010-10-04
      相关资源
      最近更新 更多