【发布时间】:2015-11-05 18:38:29
【问题描述】:
我在使用 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.”,但如果必须,我会这样做。
感谢您的帮助!
【问题讨论】:
标签: regex coldfusion word coldbox