2010-12-16 18 views

cevap

12

right(string, numberofcharacters) işlevini kullanabilirsiniz.

örneği (cfscript):

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

Teşekkür DOĞRU dönmesi gerekir! Bu iyi bir çözüm gibi görünüyor ... Aradığım alt dizeler bir çift alfabetik karakterin bir araya gelmesinden beri benimkilere yapışacağımı düşünüyorum ... ama cevabınız için teşekkürler! – froadie

+1

@froadie Dize, her zaman bir çift alfa karakterin bir birleşimi olacaktır. Daha açık, daha güvenli ve daha iyi bir çözüm olduğunda neden potansiyel bir hata bıraksın? Kendine güvenme. – jfrobishow

2

I (http://tutorial130.easycfm.com/) bulunan bir çözümü - dizenin sonunu temsil edecek bir $ işaretiyle, REFindNoCase - kullanın Normal ifade bulmak.

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

Sadece harf karakterlerini karşılaştırmak istiyorsanız bu işlev iyi çalışır. Arama dizeniz normal ifadede anlam içeren özel karakterler içeriyorsa, sorun yaşarsınız. Gibi.? $ + *. Önce bunlardan kaçmak zorunda kalacaksınız –

+4

Burada regex'e gerek yok. @Andreas Schuldhaus'un çözümü daha iyidir ve regex'in neden baş ağrısına neden olacağını açıkladı. Şöyle: "Bazı insanlar, bir problemle karşılaştıklarında," Biliyorum, düzenli ifadeler kullanacağım "diye düşünürler. Şimdi iki problemi var." http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html – orangepips

+1

Kişisel olarak regex'i severim, fakat bu, aşırı sıkıntının olduğu bir örnektir. Yukarıda listelenen left() yöntemi daha verimlidir. –

İlgili konular