我正在尝试执行正则表达式,该正则表达式将在域列表中搜索并检查所提供的域是否为白名单

假设我的主要域名www.testDomain.com

我需要一个正则表达式来匹配所有子域并具有不同的扩展范围,我已经尝试过了,并且效果很好,这是正则表达式:

"([a-z0-9]*.)([a-z0-9]*.)testDomain.(com|cn|local)"


但我有一种情况,我有以下领域

xxx.test-testDomain.com


我需要匹配准确的test-文本或什么都不匹配,因为我可能有一个多米纳xxx.anyString-testDomain.com,不允许通过
,我已经尝试了以下一项

([a-z0-9]*.)((?!.test-|(?!)))testDomain.(com|cn|local)


但是行不通,有什么建议吗?

情况:

http://abc.impersonate-testdomain.com -- shouldn't pass
http://testdomain.com -- ok
http://abc.testdomain.com -- ok
https://abc.testdomain.com -- ok
https://abc.test-testdomain.com -- ok
http://abc.testdomain.local:8081 -- ok

最佳答案

请尝试以下正则表达式:

([a-z0-9]*\\.)?(test-)?testdomain.(com|cn|local)


java - 正则表达式匹配前面的精确文本或不匹配-LMLPHP

09-11 20:21