匹配特定域及其子文件夹的正则表达式

标签 regex

我想匹配特定域及其子域,无论它是如何输入的。在下面的示例中,我想匹配所有'test.com,如果它后面没有任何内容(只有斜线或查询字符串),或者如果它后面有一个特定的文件夹,在这种情况下它被命名为:subfolder` .同样,子文件夹后面可以有/或查询字符串。

<表类="s-表"> <头> 域 匹配 <正文> 测试.com 匹配 https://test.com 匹配 https://test.com?foo=bar 匹配 https://test.com/ 匹配 https://test.com/?foo=bar 匹配 https://www.test.com 匹配 https://www.test.com/subfolder 匹配 https://www.test.com/subfolder/ 匹配 https://www.test.com/subfolder/?foo=bar 匹配 test.com/子文件夹 匹配 https://www.test.com/foo 不匹配 test.com/foo 不匹配 https://www.test.com/jason 不匹配 https://www.test.com/jason?foo=bar 不匹配

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

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

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

这怎么可能?

最佳答案

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

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

RegEx Demo

正则表达式演示:

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

关于匹配特定域及其子文件夹的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66930595/

相关文章:

regex - 理解正则表达式

python - 如何使用正则表达式 python 3.x 提取引号内的值

regex - 不允许零的正则表达式

javascript - 正则表达式:匹配单词(但删除 OR 之后的逗号)

javascript - 使用连续分割或正则表达式从文件名获取元素

python - 正则表达式在 python 中匹配和清理引号

java - 正则表达式的模式

c# - 使用带有 'or' 运算符的正则表达式并获得匹配的组?

Javascript正则表达式来获取p标签的内容

regex - Perl 正则表达式用自己替换数字,只是高一个