Obtener subcadena en Ruby
- el método de subcadena en Ruby
- Extrayendo una subcadena en Ruby
- Eliminación o reemplazo de subcadenas 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:
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:
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:
- Método Ruby
include?()
. - Método RegEx.
- 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:
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:
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:
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:
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:
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:
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:
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.