我很难弄清楚如何删除一些不需要的字符。
以下是我的数组数据示例。我想删除所有出现的" Rail National"或删除包含字符串" Rail National"的元素。
答案 0 :(得分:1)
如果我理解你的问题,这将完全删除包含文本' rail national'的数组中的任何元素。其中的任何地方:
newArray = [
'Adult Child Class',
'Ticket Type',
'I rail national Rail Nation',
'Rail Nationa',
'Rail National',
'Route']
// Remove items from the array
.filter( function(i){
return !(findNocase( i, 'Rail National' ) > 0);
// Edit items in the array
} ).map( function(i){
return replaceNocase( i, 'il Nati', '', 'all' );
} );
filter函数将针对数组中的每个项运行闭包,并且只有在闭包返回true时才返回最终数组中的该项。
map函数将返回数组,其中每个项都可能被修改。
注意,您没有说出您正在使用的CF引擎。此示例代码将在Lucee Server上运行。
答案 1 :(得分:0)
<!--- your data --->
<cfset yourArray = [
"Adult Child class",
"Ticket type",
"Elk NIL StD RTN",
"ANYTIME R",
"Start Date",
"Number",
"I Rail National Rail Nation",
"Valid unt",
"Rail Nationa",
"price"
]>
<!--- array for filtered data --->
<cfset filteredArray = []>
<cfloop array="#yourArray#" index="element">
<!--- remove elements (by skipping) that contain "Rail National" (case insensitive) --->
<cfif element contains "Rail National">
<cfcontinue>
</cfif>
<!--- remove all occurences of substring "il Nati" (case insensitive) in element --->
<cfset element = replaceNoCase(element, "il Nati", "", "ALL")>
<!--- additional filters --->
<!--- ... --->
<!--- add/keep element --->
<cfset filteredArray.add(element)>
</cfloop>
<cfdump var="#filteredArray#">
答案 2 :(得分:0)
根据要求提供正则表达式版本:
CR=chr(13);
myRegEx="(^|[\n])[^Rr\n]*Rail Nationa[^\n]*([\n]|$)";
myList=ArrayToList(myArray,CR);
myList=ReReplace(myList,myRegEx,CR,"All");
myArray=ListToArray(myList,CR);
链式RegEx版本:
CR=chr(13);
myRegEx="(^|[\n])[^Rr\n]*Rail Nationa[^\n]*([\n]|$)";
myArray=myArray.toList(CR).ReReplace(myRegEx,CR,"ALL").ListToArray(CR);
略短的链条:
myArray=myArray.toList(CR).ReplaceAll(myRegEx,CR).ListToArray(CR);
缩进版本 - 通常优先于一个衬垫:
myArray=myArray
.toList(CR)
.ReplaceAll(myRegEx,CR)
.ListToArray(CR);