【发布时间】:2021-09-25 14:48:19
【问题描述】:
我有这个字符串supplier_id ~|(~ '3422' ~)|~supplier_name ~|(~ 'WD Ltd.' ~)|~project_personnel ~|(~ 'Yaya Toure (temp)' ~)|~lt_project_code ~|(~ '013-7718321' ~)|~ id ~|(~ '668'
我需要在~|(~data~)|~ 中获取内容。我使用带有分隔符的listGetAt。问题是分隔符内的某些数据包含括号(,这会破坏搜索。例如 Yaya Toure (temp) 包含括号。
<cfoutput>
<cfset test = "supplier_id ~|(~ '3422' ~)|~supplier_name ~|(~ 'WD Ltd.' ~)|~project_personnel ~|(~ 'Yaya Toure (temp)' ~)|~lt_project_code ~|(~ '013-7718321' ~)|~ id ~|(~ '668'">
#test#
<cfset count_column = ListLen(test, "~)|~")>
<cfset column_name = ''>
<cfloop index="i" from="1" to=8 >
<cfif i mod 2 EQ 0>
<cfset column_name = ListAppend(column_name,listGetAt(test, i, "~|(~~)|~" ),",")>
</cfif>
</cfloop>
<br>
<br>
Result : #column_name#
</cfoutput>
输出:Result : '3422' , 'WD Ltd.' , 'Yaya Toure ,'
我的预期结果是:'3422' , 'WD Ltd.' , 'Yaya Toure (temp)' , '013-7718321'。如果我从字符串中删除(temp),它将起作用。请协助我并提前致谢。
【问题讨论】:
-
使用正则表达式可能会更幸运。
-
正则表达式:cffiddle.org/app/…
标签: string coldfusion delimiter