JS 正则表达式帮助域捕手

JS Regex Help Domain Catcher

我目前正在创建一个 JavaScript 正则表达式,但我似乎无法弄清楚如何匹配特定域。这是一个例子。

我需要创建一个正则表达式来匹配任何严格包含 (text.com) 但深度不超过两个域级别的域。例如:

foo.test.text.com 将不匹配,因为它包含超过 text.com(foo 和 test)的两个域级别(如果有意义的话)。

到目前为止,我已经能够创建一个正则表达式,它可以找到超过 text.com 的一个域级别的任何匹配项,但它仍然匹配它不应该匹配的域。我在想它需要一个我试过但可能配置不正确的否定前瞻断言?

我正在使用

(?<!\w)(\w+.{1}text\.com)

这是我当前的正则表达式编辑器的 link,如有任何帮助,我们将不胜感激! https://regex101.com/r/P053fv/1

当前有多少正则表达式失败的示例:https://i.stack.imgur.com/LtD9R.png

此正则表达式将匹配以 text.com 结尾且不超过 1 个子域的域:

^([^.]+?\.)?text\.com$
  • ^ 从字符串开始
  • ([^.]+?\.)? 以一个点结尾的可选字符串组
  • text\.com 关注 text.com
  • $ 字符串结尾

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

Matching Non matching
text.com foo.test.text.com
test.text.com foo2.no.match.here.text.com