在两个角色之间获取字符串 - Coldfusion

时间:2013-07-16 15:02:22

标签: regex coldfusion

我在ColdFusion上苦苦挣扎(不是我写过的语言)。

我正在尝试使用正则表达式来获取字符串的一部分。 例如,如果我的字符串是:D_CECILA23_CEC23423 我想要两个下划线之间的部分。

这是我到目前为止的代码,它适用于任何字母字符,但当一个数字被抛入混合时,它就会中断。

<cfset myStr = "D_CELCI_LISA">
<cfset myStr2 = reReplace(myStr, "([\w\d\%]+)(\_)([/ A-Z]+)(\_)([\w\d\?]+)", "\3", "all")     >

<cfoutput>
myStr: #myStr#<br />
myStr2: #myStr2#<br />
</cfoutput> 

这给了我:

myStr: D_CELCI_LISA
myStr2: CELCI

2 个答案:

答案 0 :(得分:4)

如果它真的像在第一个和第二个下划线字符之间获取文本一样简单,那么就不需要正则表达式。这样做:

myStr2 = listGetAt(myStr, 2, "_");

那就是说,这应该适用于该上下文中的正则表达式:^.*_([^_]+)_.*$,例如:

myStr2 = reReplace(myStr, "^.*_([^_]+)_.*$", "\1", "all");

答案 1 :(得分:0)

@ user2429578 ListLast()和ListFirst(),用于列表的最后一个或第一个元素。