如何从ColdFusion中的字符串中提取子字符串?

时间:2014-11-06 10:42:30

标签: coldfusion

我有一个字符串:

oauth_token=xxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxx&oauth_callback_confirmed=true

我想将这些值提取为三个变量。

您能否建议ColdFusion中最简单的方法?

3 个答案:

答案 0 :(得分:6)

@Dan Bracuk很接近,这会做你想要的。

<cfset myString = "oauth_token=xxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxx&oauth_callback_confirmed=true">
<cfloop list="#myString#" index="pair" delimiters="&">
    <cfset myStruct[ListFirst(pair, "=")] = ListLast(pair, "=")>
</cfloop>

<cfdump var="#myStruct#">

答案 1 :(得分:1)

我会尝试这样的事情:

<cfloop 
list = "oauth_token=xxxxxxx&oauth_token_secret=xxxxx&oauth_callback_confirmed=true"      
index="pair" delimiter="&">
<cfset ListFirst(pair, "=") = ListLast(pair, "=")>
</cfloop>

我不确定它是否有效,但值得一试。

答案 2 :(得分:0)

接受的解决方案还有另一种选择:

<cfset t = "oauth_token=abc&oauth_token_secret=def&oauth_callback_confirmed=true">
    <cfset oauth_token = ListGetAt(ListGetAt(t,1,"&"),2,"=")>
    <cfset oauth_token_secret = ListGetAt(ListGetAt(t,2,"&"),2,"=")>
    <cfset oauth_callback_confirmed = ListGetAt(ListGetAt(t,3,"&"),2,"=")>