【发布时间】:2013-05-06 09:23:41
【问题描述】:
我们目前在我们的应用程序上定义了一些应用程序变量,并且在我们的模板中处理了一组特殊的标签。但是我发现拆分标签有点困难,所以我可以在模板解析时将它们转换为应用程序变量。
<cfset mystring = "[pss]'fetchMessages','VWO-Tracking-Code'[end_pss]">
<cfset the_match = REMatch("\[pss\]\s*(((?!\[pss\]|\[end_pss\]).)+)\s*\[end_pss\]",mystring) />
<cfdump var="#the_match#" />
我们的目标是拆分“[pss] 和 [end_pss]”之间的字符串
上面的正则表达式只是简单地将字符串应用到 CF 数组中,这一切都很好。但是我严格想要它之间的代码,因为我可以将它转换为
<cfset application.snippets['VWO-Tracking-Code']>
现在它将所有内容都作为一个字符串返回,我还需要第一部分来确定需要什么类型的功能。
任何关于如何做到这一点的想法将不胜感激。
我们目前使用的是 CF 8,代码的结构一直完全相同。唯一的问题是它也可以包含在其他代码字符串中......
【问题讨论】:
-
“唯一的问题是它也可以包含在其他代码字符串中......” - 你的意思是它可以嵌套?处理嵌套结构时,正则表达式成为一个糟糕的选择......
-
关于 “但是我非常想要它之间的代码” 和 “我也需要第一部分” - 你需要更清楚 具体你需要什么。 “第一部分”是
pss还是fetchMessages。如果是后者,pss是静态字符串吗?这是什么上下文 - 即[可以出现在标签之外吗? mystring 是整个字符串还是子字符串的一部分?
标签: regex coldfusion coldfusion-8