ColdFusion - 使用 RefindNoCase 的字符串的最后一次出现
ColdFusion - Last Occurence of a string using RefindNoCase
我正在使用 RefindNoCase 查找最后一次出现的字符串。
这是我使用的代码:
<cfset result= REfindNoCase('-[A-Z]{3}', variables.textBeforeFirstName, 1, "true")>
这应该是 return 一个数组,其中包含每次出现的位置和长度,但它只会 return 第一个。
在特定的字符串上,我出现了 3 次,我只需要最后一次。因为我不知道每个字符串有多少次出现,我应该如何得到最后一个?
我找到了一个手动解决方案作为解决方法,因为 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>
你可以试试这个。
<cfset result= REfindNoCase('-[A-Z]{3}$', variables.textBeforeFirstName, 1, "true")>
<cfoutput>
#result.pos[1]#
</cfoutput>
我正在使用 RefindNoCase 查找最后一次出现的字符串。 这是我使用的代码:
<cfset result= REfindNoCase('-[A-Z]{3}', variables.textBeforeFirstName, 1, "true")>
这应该是 return 一个数组,其中包含每次出现的位置和长度,但它只会 return 第一个。 在特定的字符串上,我出现了 3 次,我只需要最后一次。因为我不知道每个字符串有多少次出现,我应该如何得到最后一个?
我找到了一个手动解决方案作为解决方法,因为 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>
你可以试试这个。
<cfset result= REfindNoCase('-[A-Z]{3}$', variables.textBeforeFirstName, 1, "true")>
<cfoutput>
#result.pos[1]#
</cfoutput>