首页 > 解决方案 > 如何让字符串以包含子字符串的内容开始和结束?

问题描述

我是正则表达式的新手,我正在尝试从一个大的 html 文本文件中获取 url。链接被“困”在以下类型的字符串中:

,"link_value":"https://www.linkedin.com/company/randomcompanyA"},"event":"link_click&

我想写一个正则表达式行,它将让我得到任何以"包含 linkedininstagram等开头和结尾的字符串。换句话说,我想通过在该链接中定义一个子字符串来获取字符串/链接,所以我不希望一般行返回文件中的所有链接。到目前为止,我已经能够编写以下内容:

(?<=&quot;).+?(?=&quot;)

但我无法在其中的“包含链接”部分工作。例如,上面的命令也会因此返回link_value

任何帮助表示赞赏!

标签: regex

解决方案


由于您已经在使用环顾四周,您可以通过以下方式开始匹配来使您的正则表达式更加http://具体https://

(?<=&quot;)https?:\/\/[^\/]*?\b(?:linkedin|instagram)\.\S+?(?=&quot;)

正则表达式演示

正则表达式详细信息:

  • https?:\/\/将匹配http://https://
  • [^\/]*?匹配 0 个或多个非/(惰性)字符
  • \b(?:linkedin|instagram)\.将匹配链接中的任何给定字符串,后跟一个点。
  • \S+?匹配 1 个或多个不是空格的任何字符(惰性)

推荐阅读