首页 > 解决方案 > 正则表达式匹配特定域及其子文件夹

问题描述

我想匹配一个特定的域及其子域,不管它是如何输入的。在以下示例中,我想匹配所有“test.comif nothing comes after it (only a slash or query strings) OR if a specific folder follows it in this case it's named as:子文件夹”。同样,子文件夹之后可能有/或查询字符串。

现在我有以下正则表达式:

^(?:\S+://)?[^/]+/?$

但问题是它匹配任何域,这不是我需要的。我想匹配一个特定的域和一个特定的子文件夹。

这怎么可能?

标签: regex

解决方案


你可以使用这个正则表达式:

^(?:https?://)?(?:www\.)?test\.com(?:/subfolder)?/?(?:\?\S*)?$

正则表达式演示

正则表达式演示:

  • ^: 开始
  • (?:https?://)?: *optionally* match http:// orhttps://`
  • (?:www\.)?:可选匹配www.
  • test\.com: 匹配test.com
  • (?:/subfolder)?:可选匹配/subfolder
  • /?:可选匹配尾随/
  • (?:\?\S*)?:可选匹配以开头的查询字符串?
  • $: 结尾

推荐阅读