2010-12-16 16 views

Respuesta

12

Puede usar la función right(string, numberofcharacters).

ejemplo (cfscript):

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

Gracias! Parece una buena solución ... Creo que me quedaré con la mía ya que las subcadenas que estoy buscando son una combinación de un par de caracteres alfabéticos ... ¡pero gracias por su respuesta! – froadie

+1

@froadie Su cadena siempre será una combinación de un par de caracteres alfabéticos ... hasta el día en que no sea así. ¿Por qué dejar un posible error cuando hay una solución más clara, segura y mejor? No assUme. – jfrobishow

2

Una solución que he encontrado (http://tutorial130.easycfm.com/) - utilizar una expresión regular de hallazgo - REFindNoCase, con un signo $ para representar el final de la cadena.

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

Esta función funciona bien si solo quiere comparar caracteres literales. Te encontrarás con problemas si tu cadena de búsqueda contiene caracteres especiales con un significado en expresiones regulares. Me gusta.? $ + *. Primero tendrá que escapar de ellos –

+4

Aquí no hay necesidad de expresiones regulares. La solución de @Andreas Schuldhaus es mejor y se explica por qué la expresión regular causa dolores de cabeza. A saber: "Algunas personas, cuando se enfrentan con un problema, piensan" Lo sé, usaré expresiones regulares ". Ahora tienen dos problemas". http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html – orangepips

+1

Personalmente me gusta la expresión regular, pero este es un ejemplo en el que es excesivo. El método left() mencionado anteriormente es más eficiente. –

Cuestiones relacionadas