Obtener subcadena en Ruby

Hassan Ejaz 15 febrero 2024
  1. el método de subcadena en Ruby
  2. Extrayendo una subcadena en Ruby
  3. Eliminación o reemplazo de subcadenas en Ruby
Obtener subcadena en Ruby

Una cadena lleva una secuencia arbitraria de bytes y opera en esta secuencia y es uno de los elementos básicos de todos los lenguajes de programación. Al ser parte de la construcción básica de cualquier programa, uno debe dominar el trabajo con cadenas y saber cómo realizar operaciones complejas usando cadenas.

Presentaremos en este artículo cómo crear una subcadena a partir de una cadena en Ruby con ejemplos.

el método de subcadena en Ruby

Una subcadena es un rango o matriz específica de caracteres tomados de una cadena existente. Operar una subcadena es un enfoque bastante apropiado cuando el usuario quiere trabajar en una parte específica de la cadena (como la parte inicial, final y media de la cadena).

No existe un método de subcadena en Ruby y, por lo tanto, confiamos en rangos y expresiones. Si queremos usar el rango, tenemos que usar puntos entre el índice inicial y final de la subcadena para obtener una nueva subcadena de la cadena principal.

También podemos usar comas (,) entre 2 números solo si queremos usar el punto de inicio de la subcadena. El segundo número representará el número de elementos que queremos tener en nuestra subcadena desde el punto de partida.

Para un ejemplo de rango, primero examinemos la cadena a "virus", que tiene 5 caracteres del 0 al 4. Si queremos obtener una subcadena de manera inversa, podemos usar el extremo negativo en un rango, y contar hacia atrás desde la longitud de la cadena.

Los puntos (.) se pueden usar como caracteres de punto en Ruby, y podemos usar los caracteres de punto dentro de los rangos. Podemos usar 2 o 3 periodos.

A diferencia de Python, no podemos usar dos puntos (:) dentro de los rangos. En su lugar, podemos usar intervalos de punto(.).

Como se muestra a continuación, usemos el escenario anterior para obtener una subcadena en Ruby.

Código:

# ruby

StringForSub = "virus"

StartSub = value[0..3]
MidSub = value[2..3]
EndSub = value[3..-1]

puts StartSub
puts MidSub
puts EndSub

Producción:

creando subcadenas a partir de la cadena principal en Ruby usando la indexación

El resultado anterior facilita la creación de subcadenas a partir de la cadena principal mediante el método de indexación.

Si queremos usar comas (,) dentro de los rangos, usamos 2 números. El primero será el punto de inicio de la nueva subcadena y el segundo número será la longitud de la subcadena.

El siguiente ejemplo usa la sintaxis de coma de subcadena en Ruby.

Código:

# ruby
mainString = "Ruby"

endSub = mainString[1,3]

puts endSub

midSub = mainString[1,2]

puts midSub

Producción:

creando subcadenas a partir de la cadena principal en Ruby usando comas

También podemos usar comas (,) dentro del método de indexación para obtener un rango proporcionando valores iniciales y finales para nuestra nueva subcadena.

Extrayendo una subcadena en Ruby

Se puede evitar cualquier código malicioso localizando y desinfectando la entrada de los usuarios localizando una subcadena específica entre las cadenas. Una subcadena se puede ubicar usando diferentes métodos, tales como:

  1. Método Ruby include?().
  2. Método RegEx.
  3. Referencia del elemento de cadena Ruby [].

el método Ruby include?()

Este método incorporado es el método más fácil para localizar una subcadena.

Veamos un ejemplo en el que usaremos una cadena como entrada de información por parte del usuario. Para comprobar si el contenido contiene algún elemento de spam o no.

# ruby
mainStr = 'User submitted this content. It is a spam'
 if mainStr.include?("spam")
   puts "Spam Content! Content Deleted"
 else
   puts "Content Saved"
 end

Producción:

comprobando la subcadena en una cadena principal usando ruby

Puede detectar la subcadena de la cadena principal, pero una cosa para recordar es que es un método que distingue entre mayúsculas y minúsculas.

Dado que el valor de retorno del método es un valor booleano (true o false) que indica si la subcadena está disponible o no, respectivamente; por lo tanto, implementamos una declaración if-else para actuar en consecuencia.

Una desventaja de usar el incluir? El método es que distingue entre mayúsculas y minúsculas y el spam puede devolver una declaración “falsa”. Es esencial convertir toda la cadena a mayúsculas o minúsculas y luego ubicar una subcadena específica dentro de una cadena.

El método es el siguiente para convertir a mayúsculas.

Código:

# ruby
mainStr = 'User submitted this content. It is a SPAM!'
 if mainStr.include?("spam".upcase)
   puts "Spam Content! Content Deleted"
 else
   puts "Content Saved"
 end

Producción:

comprobando la subcadena en una cadena principal usando Ruby con el método de mayúsculas

Imaginemos el mismo escenario, pero tenemos que usar las minúsculas.

Código:

# ruby
mainStr = 'User submitted this content. It is a SPAM!'
 if mainStr.include?("spam".downcase)
   puts "Spam Content! Content Deleted"
 else
   puts "Content Saved"
 end

Producción:

comprobando la subcadena en una cadena principal usando Ruby con el método de mayúsculas

Como puede ver, podemos usar subcadenas para hacer que nuestro sistema sea seguro comprobando las subcadenas de los datos enviados en busca de spam o algún otro tipo de contenido que no queremos que se guarde dentro de nuestra aplicación.

el método RegEx en Ruby

Ruby devuelve nil usando este método si la subcadena específica no se encuentra dentro de la cadena. En este método, se usa una expresión regular simple para verificar si la cadena tiene el patrón de expresión regular especificado como spam.

Código:

# ruby
mainStr = 'User submitted this content. It is a spam!'
puts mainStr =~ /spam

Producción:

método regex en ruby

También podemos encontrar la subcadena requerida de una cadena usando el método RegEx y devolver la ubicación de la subcadena dentro de una cadena. Si no se encuentra la subcadena, devolverá nil.

Referencia de elemento de cadena Método [] en Ruby

El método de referencia de cadena de Ruby pasa una cadena, un valor de índice o una expresión regular dentro de un par de corchetes.

Código:

# ruby
mainStr = 'spam'
puts mainStr['spam']
puts mainStr['[not-spam]']

Producción:

usando el elemento ref en ruby

Devuelve la cadena original si la subcadena de verificación está presente dentro de la cadena principal, o devolverá nil si la subcadena no está presente dentro de la cadena principal.

Para expresiones regulares:

# ruby
mainStr = 'spam'
puts mainStr[/spam/]

Producción:

usando el elemento ref en ruby

Eliminación o reemplazo de subcadenas en Ruby

Si es necesario reemplazar o eliminar una determinada subcadena de la cadena principal, podemos usar el método de asignación simple. Podemos usar el método index para cambiar el valor.

Código:

# ruby
mainStr="Hello World!"

mainStr[0..4] = "Bye"

puts mainStr

Producción:

reemplazando subcadena usando el método de índice

Utilice el método de indexación para reemplazar o eliminar una determinada parte de la cadena principal simplemente asignando el valor a la parte de la cadena.

Artículo relacionado - Ruby String