Una operación típica cuando se trabaja con cadenas es determinar si una cadena contiene una subcadena específica. Puede usar estos métodos para localizar y desinfectar la entrada de los usuarios, evitando así cualquier código malicioso.
En este tutorial, le mostraremos cómo determinar si una cadena contiene una subcadena específica.
Ruby incluye? Método
La forma más fácil de encontrar si una subcadena específica está en otra cadena es usar incluir? método incorporado.
Aquí hay un ejemplo:
str = 'En el ejemplo anterior, tenemos un programa simple que contiene información de una entrada de formulario HTML. Verificamos si el formulario contiene un método de publicación utilizando el método de incluir.
Dado que el valor de retorno del método es un verdadero o falso booleano si la subcadena está disponible o no, respectivamente, implementamos una declaración if ... de lo contrario para actuar en consecuencia.
La salida de ejemplo del script anterior es como se muestra:
$ Ruby Subcuby.RBSi sustituimos los datos del formulario y establecemos el método en Get, podemos llegar al bloque de Else como:
str = 'Ejecutamos el script como:
$ Ruby Subcuby.RBUn inconveniente de la inclusión? El método es su caso sensible. Esto significa que la publicación y la publicación devolverán un valor falso.
Por ejemplo:
str = 'publicar'Si ejecutamos el ejemplo anterior, debemos obtener una salida del bloque de Else como:
$ Ruby Subcuby.RBPara superar esto, primero podemos convertir la cadena completa en minúsculas o mayúsculas, luego verifique si la subcadena está dentro de la cadena principal.
Aquí hay un ejemplo:
str = 'publicar'En este ejemplo, convertimos la subcadena a mayúscula, que coincide con la cadena principal y verifica el valor.
$ Ruby Subcuby.RBUsando regex
Podemos usar regex para verificar si una cadena contiene una subcadena específica. Ruby devolverá nulo si el patrón de expresión regular especificado no está dentro de la cadena.
Por ejemplo:
str = 'En el ejemplo anterior, usamos una expresión regular simple para verificar si la cadena contiene la "publicación" de la subconocencia ".
Si ejecutamos el script anterior, debemos obtener una salida similar a la siguiente:
$ Ruby Subcuby.RBEl valor de retorno de la expresión regular es el índice inicial donde se encuentra el caso de coincidencia. En nuestro ejemplo, la cadena posterior está comenzando desde el índice 33. Podemos verificar como:
str = '..En el ejemplo anterior, comenzamos desde el índice inicial donde la cadena se encuentra para indexar que coincide con la longitud de la subcadena:
$ Ruby Subcuby.RBReferencia del elemento de cadena de ruby []
También podemos usar el método de referencia de cadena Ruby. Podemos pasar una cadena, un valor de índice o una expresión regular dentro de un par de soportes cuadrados.
Ejemplo de uso:
str = 'publicar'Si ejecutamos el ejemplo anterior, deberíamos ver una salida como:
=> PublicarSi la subcadena está disponible, devolverá la cadena real; Sin embargo, devolverá nulo si no hay subcadena.
El mismo caso se aplica a expresiones regulares.
str = 'publicar'También podemos usar el método anterior para extraer una subcadena. Por ejemplo, para extraer 10 caracteres después del partido, podemos hacer:
str = 'post ------ cadena continúa aquí'El ejemplo anterior obtendrá 9 índices después del índice donde está la coincidencia.
Conclusión
En esta guía, aprendió cómo verificar si una cadena contiene una subcadena específica utilizando la inclusión? método, expresiones regulares y referencia de elementos de cadena.