我们目前在我们的应用程序中定义了一些应用程序变量,并且还有一组特殊的标记,这些标记在我们的模板中处理。但是我发现拆分标签有点困难,所以我可以在模板解析时将它们转换为应用程序变量。
<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,并且代码的结构始终完全相同。唯一的问题是它也可以包含在其他代码串中......
答案 0 :(得分:0)
如果您只对一组标签执行此操作,则可以使用replaceList
函数而不是regEx
<cfset mystring = "[pss]'fetchMessages','VWO-Tracking-Code'[end_pss]">
<cfset mystring = replaceList(mystring,"[pss],[end_pss],'",'')>
<cfset firstitem = listfirst(mystring)>
<cfset seconditem = listlast(mystring)>
<cfdump var="#firstitem#">
<cfdump var="#seconditem#">
这会输出fetchMessages
和VWO-Tracking-Code
。如果您想要/需要字符串上的单引号,则可以从,'
函数的第2个参数中删除replaceList
。