0

我有一个字符串,我希望根据字符串中的下划线删除一些字符。例如。

我想改变

2_MASTER BEDROOM_CFM

MASTER BEDROOM

或者

2734923ie_BEDROOM 2_CFM

BEDROOM 2

关于如何用冷融合做到这一点的任何建议?

4

2 回答 2

5

ColdFusion 具有这样的GetToken()功能,它使得使用分隔符(几乎任何分隔符)操作字符串变得非常容易。假设您要解析的每个字符串都是 2 组字符串,那么这将输出MASTER BEDROOM

<cfset String1 = '2_MASTER BEDROOM_CFM'>
<cfset FirstWord = ListFirst(String1,' ')>
<cfset FirstWord = GetToken(FirstWord,2,'_')>
<cfset SecondWord = ListLast(String1,' ')>
<cfset SecondWord = GetToken(SecondWord,1,'_')>

<cfoutput>
  #FirstWord# #SecondWord#
</cfoutput>

也可以将其简化为

<cfset String1 = '2_MASTER BEDROOM_CFM'>
<cfoutput>
  #GetToken(ListFirst(String1,' '),2,'_')# #GetToken(ListLast(String1,' '),1,'_')#
</cfoutput>

编辑正如 Leigh 在评论中指出的那样,您也可以使用

getToken("2_MASTER BEDROOM_CFM", 2, "_")

这会将您的字符串视为包含元素2MASTER BEDROOMCFM

于 2013-04-09T02:42:54.400 回答
0

所以字符串以一些数字和/或字符开头,然后是下划线。然后是一些文本,最后是一个下划线,后跟 CFM?这是一个捕捉到这一点的正则表达式:

^[a-z0-9]+_(.*)_CFM$

这是一些对我有用的代码:

<cfoutput>
<cfset String1 = '2_MASTER BEDROOM_CFM'>
<cfset yourString = reReplaceNoCase(String1, "^[a-z0-9]+_(.*)_CFM$", "\1")>

#yourString#<br>

<cfset String2 = "2734923ie_BEDROOM 2_CFM">
<cfset yourString = reReplaceNoCase(String2, "^[a-z0-9]+_(.*)_CFM$", "\1")>

#yourString#<br>
</cfoutput>
于 2013-04-09T08:14:55.490 回答