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不应该这样做。由于某种原因,当我真的需要用一个点来匹配开始时,我的头脑分裂了。谢谢大家。