我从数据库中检索到一个字符串,该字符串可以包含{}或[]括号中的一系列代码以及普通的用户输入文本。例如,以下每个都是可能的值:
[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 (呻吟)的服务器上遇到这种情况,所以我的选择有限。
我想也许我可以对字符串进行一些替换,将其转换为管道分隔列表,然后我可以轻松处理但是我不确定是否可能有更直接的方法?我甚至不确定使用替换来处理这个的合理方法是什么。
答案 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