我找到了一個手動解決方案作爲解決方法,因爲它似乎沒有Coldfusion匹配所有情況的功能。 我所做的是創建一個搜索子字符串的循環,如果它找到它,那麼它會從當前字符串中刪除以前的文本。當剩餘字符串中沒有其他出現時,循環停止,因此變量中的最後一次出現是您要查找的內容。這是代碼:
<cfloop condition="continueParse eq true">
<cfset airportService= REfindNoCase('-[A-Z]{3}', variables.textBeforeFirstName, 1, "true")>
<cfif airportService.len[1] gt 0>
<cfset variables.airportServiceName = #mid(variables.textBeforeFirstName,airportService.pos[1],airportService.len[1])#>
<cfset variables.textBeforeFirstName = #right(variables.textBeforeFirstName,#len(variables.textBeforeFirstName)#-(airportService.pos[1]+airportService.len[1]))#>
#variables.airportServiceName#<br/>
<cfelse>
<cfset continueParse = false>
</cfif>
</cfloop>
你可以添加字符串來嘗試。 –
「這應該返回一個數組,其位置和長度爲每個事件」。不,這不對。重新閱讀文檔。您可能想要使用'rematch()',而不是'refind()' –