我在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
答案 0 :(得分:4)
如果它真的像在第一个和第二个下划线字符之间获取文本一样简单,那么就不需要正则表达式。这样做:
myStr2 = listGetAt(myStr, 2, "_");
那就是说,这应该适用于该上下文中的正则表达式:^.*_([^_]+)_.*$
,例如:
myStr2 = reReplace(myStr, "^.*_([^_]+)_.*$", "\1", "all");
答案 1 :(得分:0)
@ user2429578 ListLast()和ListFirst(),用于列表的最后一个或第一个元素。