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