'JS Regex Help Domain Catcher

I'm currently creating a JavaScript Regex and I can't seem to figure out how to match a specific domain. Here is an example.

I need to create a regex that matches any domain that strictly contains (text.com) but not two domain levels deep. For example:

  • text.com --> match
  • test.text.com --> match

foo.test.text.com will not match as it contains two domain levels past text.com (foo and test) if that makes sense.

So far, I have been able to create a regex that can find any match for one domain level past text.com but it still matches domains it should not. I'm thinking it needs a negative lookahead assertion which I tried but maybe configured incorrectly?

I am using

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

Here is a link to my current regex editor, any help would be greatly appreciated! https://regex101.com/r/P053fv/1

Example of how many current regex fails: https://i.stack.imgur.com/LtD9R.png



Solution 1:[1]

This regex will match domains ending with text.com and not having more than 1 subdomain:

^([^.]+?\.)?text\.com$
  • ^ from the start of the string
  • ([^.]+?\.)? an optional string group ending with one dot
  • text\.com following text.com
  • $ end of string

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

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Diego De Vita