我想匹配特定域及其子域,无论它是如何输入的。在下面的示例中,我想匹配所有'test.com,如果它后面没有任何内容(只有斜线或查询字符串),或者如果它后面有一个特定的文件夹,在这种情况下它被命名为:
subfolder` .同样,子文件夹后面可以有/或查询字符串。
现在我有以下正则表达式:
^(?:\S+://)?[^/]+/?$
但问题是它匹配任何域,这不是我需要的。我想匹配特定域和特定子文件夹。
这怎么可能?
最佳答案
你可以使用这个正则表达式:
^(?:https?://)?(?:www\.)?test\.com(?:/subfolder)?/?(?:\?\S*)?$
正则表达式演示:
-
^
: 开始 -
(?:https?://)?: *optionally* match
http://or
https://` -
(?:www\.)?
: 可选匹配www.
-
test\.com
: 匹配test.com
-
(?:/subfolder)?
: 可选匹配/subfolder
-
/?
: 可选 匹配尾随/
-
(?:\?\S*)?
: 可选 匹配以?
开头的查询字符串 -
$
: 结束
关于匹配特定域及其子文件夹的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66930595/