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

标签 java regex

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

假设我的主域 www.testDomain.com

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

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

但是我有一个案例,我有以下域

xxx.test-testDomain.com

我需要匹配确切的test-文本,或者什么都没有,因为我可能有一个domina 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)

enter image description here

关于java - 正则表达式与前面的精确文本匹配或不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49555995/

相关文章:

java - @Resource 注释成员未注入(inject) - 错误代码或错误?

java - Swing - 使用 getComponent() 更新所有 JButton

java - 使用 XQuery eval 通过 JAVA 将文件上传到 MarkLogic Server 文件系统

java - Spring社交登录和重定向并返回值

r - R中的正则表达式:'perl = TRUE'与默认值(PCRE与TRE)

java - CWAC 相机 JAR 的 Dalvik 问题

regex - 从数字范围生成正则表达式

javascript - 如何在javascript中的字符串内的某个索引处附加字符

Java分割嵌套括号字符串

java - 在正则表达式中设置最小和最大字符