Ruby | Expresiones regulares

Una expresión regular es una secuencia de caracteres que define un patrón de búsqueda, principalmente para usar en la coincidencia de patrones con strings. Las expresiones regulares de Ruby, es decir, Ruby regex para abreviar, nos ayudan a encontrar patrones particulares dentro de una string. Dos usos de ruby ​​regex son Validación y Análisis. Ruby regex se puede usar para validar una dirección de correo electrónico y una dirección IP también. Las expresiones regulares de Ruby se declaran entre dos barras diagonales.

Sintaxis:

# finding the word 'hi'
"Hi there, i am using gfg" =~ /hi/

Esto devolverá el índice de la primera aparición de la palabra ‘hi’ si está presente, o de lo contrario devolverá ‘ nil ‘.

Comprobando si una string tiene una expresión regular o no

También podemos verificar si una string tiene una expresión regular o no usando el método de coincidencia . A continuación se muestra el ejemplo para entender.
Ejemplo :

# Ruby program of regular expression
  
# Checking if the word is present in the string
if "hi there".match(/hi/)
    puts "match"
end

Producción:

match

Comprobando si una string tiene algún conjunto de caracteres o no

Podemos usar una clase de carácter que nos permite definir un rango de caracteres para la coincidencia. Por ejemplo, si queremos buscar una vocal, podemos usar [aeiou] como coincidencia.
Ejemplo :

# Ruby program of regular expression
  
# declaring a function which checks for vowel in a string
def contains_vowel(str)
  str =~ /[aeiou]/
end
  
# Driver code
  
# Geeks has vowel at index 1, so function returns 1
puts( contains_vowel("Geeks") )
  
# bcd has no vowel, so return nil and nothing is printed
puts( contains_vowel("bcd") )

Producción:

1

Diferentes expresiones regulares

Hay diferentes expresiones cortas para especificar rangos de caracteres:

  • \w es equivalente a [0-9a-zA-Z_ ]
  • \d es lo mismo que [0-9]
  • \s coincide con el espacio en blanco
  • \W cualquier cosa que no esté en [0-9a-zA-Z_]
  • \D cualquier cosa que no sea un número
  • \S cualquier cosa que no sea un espacio
  • El carácter de punto . coincide con todos pero no coincide con la nueva línea. Si quieres buscar . personaje, entonces tienes que escapar de él.

Ejemplo :

# Ruby program of regular expression
   
a="2m3"
b="2.5"
# . literal matches for all character
if(a.match(/\d.\d/))
    puts("match found")
else
    puts("not found")
end
# after escaping it, it matches with only '.' literal
if(a.match(/\d\.\d/))
    puts("match found")
else
    puts("not found")
end
   
if(b.match(/\d.\d/))
    puts("match found")
else
    puts("not found")
end   

Producción:

match found
not found
match found

Modificadores para expresiones regulares

Para hacer coincidir varios caracteres podemos usar modificadores:

  • + es para 1 o más caracteres
  • * es para 0 o más caracteres
  • ? es para 0 o 1 caracter
  • {x, y} si para el número de caracteres entre x e y
  • i es para ignorar el caso al hacer coincidir el texto.
  • x es para ignorar los espacios en blanco y permite comentarios en expresiones regulares.
  • m es para coincidencias de varias líneas, reconociendo nuevas líneas como caracteres normales.
  • u,e,s,n son para interpretar la expresión regular como Unicode (UTF-8), EUC, SJIS o ASCII. se supone que la expresión regular utiliza la codificación de origen, si no se especifica ninguno de estos modificadores.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *