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?
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
CodePudding user response:
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 dottext\.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 |