2010-12-16 175 views

回答

12

您可以使用right(string, numberofcharacters)函數。

示例(CFSCRIPT):

existingString = "The Quick brown Fox jumps"; 
tailString = "umps"; 
stringMatch = false; 
if (right(existingString, len(tailString)) eq tailString){ 
    stringMatch = true; 
} 
+0

謝謝!這看起來像一個很好的解決方案......我想我會堅持我的,因爲我正在尋找的子字符串是一對字母字符的組合......但感謝您的迴應! – froadie 2010-12-16 09:11:01

+1

@froadie你的字符串將永遠是幾個字母字符的組合......直到它不是。爲什麼在有更清晰,更安全,更好的解決方案時留下潛在的問題?不要欺騙。 – jfrobishow 2010-12-16 13:57:52

2

的溶液,我發現(http://tutorial130.easycfm.com/) - 使用一個正則表達式的發現 - REFindNoCase,具有$符號來表示字符串的結束。

REFindNoCase("end$", "check if this string ends with end") 
+1

如果您只想比較文字字符,此函數可以很好地工作。如果搜索字符串包含特殊字符並且在正則表達式中有含義,則會遇到問題。像。?$ + *。您將不得不先逃脫它們 – 2010-12-16 09:05:29

+4

這裏沒有必要使用正則表達式。 @Andreas Schuldhaus的解決方案更好,他解釋了爲什麼正則表達式會引起頭痛。例如:「有些人遇到問題時,會想」我知道,我會用正則表達式「,現在他們有兩個問題。」 http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html – orangepips 2010-12-16 11:47:24

+1

我個人比較喜歡正則表達式,但這是一個過度殺傷的例子。上面列出的left()方法更高效。 – 2010-12-16 14:59:41

10

這是我跳到Java級別真正快的地方。

string = "This is my fancy string"; 

<cfoutput>#string.endsWith("string")#</cfoutput> 

這應該輸出TRUE

更多細節在這裏: http://download.oracle.com/javase/6/docs/api/java/lang/String.html#endsWith(java.lang.String)

注意的endsWith()是區分大小寫的。爲了解決這個問題,可以使用LCase()或UCase(),例如,使用LCase()或UCase()來解決這個問題。

Ucase(string).endsWith("STRING"); 

也應該返回true

相關問題