简单的正则表达式有助于coldfusion

Chr*_*lie 0 regex coldfusion

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

我希望改变

2_MASTER BEDROOM_CFM
Run Code Online (Sandbox Code Playgroud)

MASTER BEDROOM
Run Code Online (Sandbox Code Playgroud)

要么

2734923ie_BEDROOM 2_CFM
Run Code Online (Sandbox Code Playgroud)

BEDROOM 2
Run Code Online (Sandbox Code Playgroud)

关于如何用coldfusion做这个的任何建议?

Mat*_*che 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>
Run Code Online (Sandbox Code Playgroud)

也可以简化它

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

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

getToken("2_MASTER BEDROOM_CFM", 2, "_")
Run Code Online (Sandbox Code Playgroud)

这会将你的字符串与元素的列表2,MASTER BEDROOM以及CFM

  • 我可能是错的,但我的看法是他们只想要第二个列表元素(带空格).如果是这样,一个简单的`getToken("2_MASTER BEDROOM_CFM",2,"_")`应该这样做. (2认同)