在ColdFusion版本4.5中检索括号内的代码

时间:2017-11-17 00:51:34

标签: regex coldfusion

我从数据库中检索到一个字符串,该字符串可以包含{}或[]括号中的一系列代码以及普通的用户输入文本。例如,以下每个都是可能的值:

[code]

[code1][code2]

{code}

{code1}{code2}

{code1} Some user entered text. {code2}{code3} Some more user entered text.

Etc. etc.

使用ColdFusion我需要做的是提取{}和[]括号内的代码,以便我可以从数据库中检索它们的描述。例如:

{code1} Some user entered text. {code2}{code3} Some more user entered text.

将成为类似的列表:

{code1}|{code2}|{code3}

通常我可以做像REMatch这样的事情,但不幸的是我在运行 ColdFusion版本4.5 (呻吟)的服务器上遇到这种情况,所以我的选择有限。

我想也许我可以对字符串进行一些替换,将其转换为管道分隔列表,然后我可以轻松处理但是我不确定是否可能有更直接的方法?我甚至不确定使用替换来处理这个的合理方法是什么。

1 个答案:

答案 0 :(得分:1)

<cfset myString = "{code1} Some user entered text {code2}{code3} More user entered text" />
<cfset myArray = listToArray(myString, "{[") />

<cfloop index="i" from="1" to="#arrayLen(myArray)#">
  <cfset myArray[i] = "{" & listFirst(myArray[i], "}]") & "}" />
</cfloop>

<cfdump var="#myArray#" />
<hr>

<cfset myList = arrayToList(myArray, "|") />
<cfdump var="#myList#" />

TryCF.com要点:
https://trycf.com/gist/6035ddc5cd3daa81bc0943f1af33323a/lucee5?theme=monokai