我想从正则表达式中排除特定的子域。 我搜索并尝试了不同的正则表达式。但对我来说不起作用。
正常的正则表达式如下所示:
https?:\/\/((localhost(\:\d+)?)|([a-z\-\.]*\.)?(gaga.ch|gugus.ch))
为了排除 gugus.ch 中名称为 admin 的子域,我添加了:(^(?!.*admin).*)
所以整个正则表达式看起来像:
https?:\/\/((localhost(\:\d+)?)|([a-z\-\.]*\.)?(gaga.ch|(^(?!.*admin).*)gugus.ch))
所以它应该让通过http://www.gugus.ch
但不是http://admin.gugus.ch
这不起作用。我做错了什么?
谢谢迈克
最佳答案
尝试这个正则表达式:
https?://((localhost(:\d+)?)|([a-z.-]*\.)?(gaga\.ch|(?<!\badmin\.)gugus\.ch)
(?<!\badmin\.)
如果 gugus.ch
则为负向回顾,导致匹配失败前面是 admin.
关于java - 正则表达式排除特定子域 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30889133/