La cuerda de Ruby contiene una subcadena

La cuerda de Ruby contiene una subcadena
Las cadenas son bloques de construcción fundamentales en todos los lenguajes de programación. Cada programador debe tener una comprensión sólida de trabajar con cuerdas y realizar operaciones complejas en ellas.

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 = '
Información:

'
Si str.incluir?("correo")
pone "Método HTTP correcto -> Publicar"
demás
pone "método HTTP incorrecto"
fin

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.RB
Método HTTP correcto -> Publicar

Si sustituimos los datos del formulario y establecemos el método en Get, podemos llegar al bloque de Else como:

str = '
Información:

'
Si str.incluir?("correo")
pone "Método HTTP correcto -> Publicar"
demás
pone "método HTTP incorrecto"
fin

Ejecutamos el script como:

$ Ruby Subcuby.RB
Método HTTP incorrecto

Un 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 str.incluir?("correo")
pone "Método HTTP correcto -> Publicar"
demás
pone "método HTTP incorrecto"
fin

Si ejecutamos el ejemplo anterior, debemos obtener una salida del bloque de Else como:

$ Ruby Subcuby.RB
Método HTTP incorrecto

Para 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'
if (str.incluir?("correo".upcase))
pone "Método HTTP correcto -> Publicar"
demás
pone "método HTTP incorrecto"
fin

En este ejemplo, convertimos la subcadena a mayúscula, que coincide con la cadena principal y verifica el valor.

$ Ruby Subcuby.RB
Método HTTP correcto -> Publicar

Usando 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 = '
Información:

'
pone str = ~ /post /

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.RB
33

El 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 = '..
Pone STR [33 ... 36]

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.RB
correo

Referencia 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'
pone str ['post']
pone str ['no rescate']

Si ejecutamos el ejemplo anterior, deberíamos ver una salida como:

=> Publicar
=> nulo

Si 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'
pone str [/post/]
=> 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í'
pone str [str = ~ /string /, 9]

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.