如何在不使用^和$

时间:2017-04-15 05:52:58

标签: regex

我有一个像这样的简单域名:https://example.com/我希望将它与可能与之完全匹配的字符串匹配。

其他变体可能包括:

https://example.com/1234567890/
https://example.com/subdomain/subdomain2
https://example.com/domain

我想匹配确切的域但不告诉它字符串的开始或结束位置。

我试过:https:\/\/example\.com\/[^.]希望在字符串之后否定任何内容,或https:\/\/example\.com\/(?!.)否定前瞻但这似乎不起作用所以我现在迷失了。

我需要一个仅与此列表中的https://example.com/匹配的正则表达式:

https://example.com/
https://example.com/1234567890/
https://example.com/subdomain/subdomain2
https://example.com/domain

1 个答案:

答案 0 :(得分:2)

考虑到URL不包含空格。然后,您可以基本上 使用[^.][^\s]而不是\S

(?:^|\s)http\S+

Live Demo

请注意,这假设所有网址都以http开头,并且任何不是空格的字符都是网址的一部分。

修改

由于您只想匹配域名,因此可以执行以下操作:

(?:^|\s)(https?://\w+\.\w+/)

Live Demo