Regex 如何只匹配前一个点?

Regex 如何只匹配前一个点?,regex,Regex,我有下面的正则表达式 ^((?!example).)*$#Subdomain is reserved (example). 我想验证.example.org。但是,由于域名包含示例,因此发生了匹配 当地址为www.example.org 当地址为example.example.org时,验证应该匹配。一种简单的方法可能是将其分成两部分: ^.+\.example\.org$ ^(www)?\.example\.org$ 如果1)匹配,2)不匹配,则它是example.org的子域;否则,就不是

我有下面的正则表达式

^((?!example).)*$#Subdomain is reserved (example).
我想验证
.example.org
。但是,由于域名包含
示例
,因此发生了匹配

当地址为
www.example.org


当地址为
example.example.org

时,验证应该匹配。一种简单的方法可能是将其分成两部分:

  • ^.+\.example\.org$
  • ^(www)?\.example\.org$

  • 如果1)匹配,2)不匹配,则它是
    example.org
    的子域;否则,就不是了。(虽然
    www
    从技术上讲是一个子域,但您可以理解。)

    看起来您缺少句点中的转义字符

    ^(example)\..*$
    

    应该行得通

    看来

    ^example\.
    
    够了。或使用字符串方法,具体取决于您的语言:

    url.indexOf('example.') === 0
    
    如果还可以输入例如
    example.org
    ,则可以使用

    ^example\..+\.
    

    迫使出现两个点。但对于
    example.co.uk
    ,这仍然会失败。这取决于您的输入。

    是否应该
    示例。somethingelse.com
    匹配?怎么样
    somethingelse.example.org
    ?怎么样
    some.thing.example.org
    ?只
    example.com
    (没有子域)怎么样?example.somethingelse.com应该匹配。somethingelse.example.org不应该这样做。由于某种原因,当我真的需要用一个点来匹配开始时,我的头脑分裂了。谢谢大家。