RegEx只匹配URL的前部分并将其用作变量

xxls0lw8  于 2022-11-26  发布在  其他
关注(0)|答案(3)|浏览(129)

一直在与Regex斗争,帮助是非常感谢!我想匹配部分URL与Regex,但不能得到我的头周围。
域包括:
第二部分第三部分
我希望正则表达式与

name我该如何实现这一目标?

(?<=^|\.)(?<=^|\.)secondpart\.thirdpart\.com$开始,但不起作用。

2eafrhcq

2eafrhcq1#

请注意,我使用前导反斜杠转义斜杠,假设您使用斜杠作为正则表达式分隔符。如果您不使用分隔符或使用其他分隔符(例如#),则可以使用/代替\/
如果你只关心第一部分,那么

^[^.:\/]+:\/\/([^.]+)

应该可以。
https://regex101.com/r/CXXOOD/1
如果之后还需要强制实施特定域,则在如下所示的组中捕获该域

^[^.:\/]+:\/\/([^.]+)\.secondpart\.thirdpart\.com$

https://regex101.com/r/gjfYhC/1
如果您要确保在子域部分之后正好有3个部分,但不关心它们是什么:

^[^.:\/]+:\/\/([^.]+)(?:\.[^.]+){3}$

https://regex101.com/r/lUYBkT/1

gpfsuwkq

gpfsuwkq2#

标记pcre时,您可以用途:

^https?://\K[^\s./]+

说明

  • ^字符串开头
  • https?://将协议与可选的s匹配
  • \K忽略目前匹配的内容
  • [^\s./]+匹配1+次非空白字符,./除外

请参见regex demo

igetnqfo

igetnqfo3#

你可以用它,

(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})

相关问题