我在使用 ColdFusion 10 构建正则表达式时遇到了麻烦。如果 URL 在任何包含“mydomain.com”的子域的末尾包含“dev”,我需要 reFind() 返回零。
reFind(THE_REGEX, "subdomaindev.mydomain.com") needs to return 0
reFind(THE_REGEX, "subdomain.mydomain.com") needs to return a positive number
我在 Adobe 的文档中找到了以下内容:(http://help.adobe.com/en_US/ColdFusion/10.0/Developing/WSc3ff6d0ea77859461172e0811cbec0a38f-7ffb.html)并基于此我尝试使用前瞻概念。
认为这会起作用,但它没有:
reFind("(?!dev)\.mydomain\.com$", "subdomaindev.mydomain.com") = 13
reFind("(?!dev)\.mydomain\.com$", "subdomain.mydomain.com") = 10
不明白为什么这两者都为零:
reFind("(?=dev)\.mydomain\.com$", "subdomaindev.mydomain.com") = 0
reFind("(?=dev)\.mydomain\.com$", "subdomain.mydomain.com") = 0
这是我对 (?=) 的预期结果:
reFind("(?:dev)\.mydomain\.com$", "subdomaindev.mydomain.com") = 10
reFind("(?:dev)\.mydomain\.com$", "subdomain.mydomain.com") = 0
注意:这是用于 ColdBox 的环境配置,我只能将一个正则表达式传递给一个名为“environments”的变量,然后该变量为匹配的环境调用一个方法。我不希望在该方法中进行第二次检查以找到“dev.”,但如果必须的话,我会的。
感谢您的任何帮助!