regex - 如何让字符串以包含子字符串的内容开始和结束?
问题描述
我是正则表达式的新手,我正在尝试从一个大的 html 文本文件中获取 url。链接被“困”在以下类型的字符串中:
,"link_value":"https://www.linkedin.com/company/randomcompanyA"},"event":"link_click&
我想写一个正则表达式行,它将让我得到任何以"
、包含 linkedin
或instagram
等开头和结尾的字符串。换句话说,我想通过在该链接中定义一个子字符串来获取字符串/链接,所以我不希望一般行返回文件中的所有链接。到目前为止,我已经能够编写以下内容:
(?<=").+?(?=")
但我无法在其中的“包含链接”部分工作。例如,上面的命令也会因此返回link_value
。
任何帮助表示赞赏!
解决方案
由于您已经在使用环顾四周,您可以通过以下方式开始匹配来使您的正则表达式更加http://
具体https://
:
(?<=")https?:\/\/[^\/]*?\b(?:linkedin|instagram)\.\S+?(?=")
正则表达式详细信息:
https?:\/\/
将匹配http://
或https://
[^\/]*?
匹配 0 个或多个非/
(惰性)字符\b(?:linkedin|instagram)\.
将匹配链接中的任何给定字符串,后跟一个点。\S+?
匹配 1 个或多个不是空格的任何字符(惰性)
推荐阅读
- excel - 在excel VBA中循环
- haskell - 长度为 k 的子集?
- reactjs - gatsby blog starter 制作链接图像
- java - 如何通过用户输入从 sqlite 检索数据
- homebrew - Cmake 无法在 Homebrew 中找到 boost_pyhton 库
- swagger - OAS3.0 是否支持在组件中定义头参数?
- c - 将 int 指针转换为 void 指针并返回以在另一个函数中使用该值?
- javascript - NgRx 存储 - 选择器不适用于根全局存储
- c# - CancelInvoke 实际上并没有取消任何东西
- perl - Perl 如何解析未引用的裸词?