Haskell:
Usando expresiones regulares
Cómo hacerlo:
En Haskell, las funcionalidades de expresiones regulares no son parte de la biblioteca estándar, por lo que es necesario utilizar paquetes de terceros como regex-base
junto con un backend compatible como regex-posix
(para soporte de regex POSIX), regex-pcre
(para regex compatible con Perl), etc. Así es como puedes usar estos paquetes para trabajar con expresiones regulares.
Primero, asegúrate de tener los paquetes instalados añadiéndolos regex-posix
o regex-pcre
al archivo .cabal
de tu proyecto o instalándolos directamente mediante cabal:
cabal install regex-posix
o
cabal install regex-pcre
Usando regex-posix
:
import Text.Regex.Posix ((=~))
-- Comprobar si una cadena coincide con un patrón
isMatch :: String -> String -> Bool
isMatch texto patron = texto =~ patron :: Bool
-- Encontrar la primera coincidencia
findFirst :: String -> String -> String
findFirst texto patron = texto =~ patron :: String
main :: IO ()
main = do
print $ isMatch "hola mundo" "mu"
-- Salida: True
print $ findFirst "buenos días, buenas noches" "buen"
-- Salida: "buen"
Usando regex-pcre
:
import Text.Regex.PCRE ((=~))
-- Encontrar todas las coincidencias
findAll :: String -> String -> [String]
findAll texto patron = texto =~ patron :: [String]
main :: IO ()
main = do
print $ findAll "prueba1 prueba2 prueba3" "\\bprueba[0-9]\\b"
-- Salida: ["prueba1","prueba2","prueba3"]
Cada biblioteca tiene sus particularidades, pero la metodología general de usar =~
para aplicar la regex se mantiene consistente, ya sea para comprobar una coincidencia o para extraer subcadenas. La elección entre regex-posix
o regex-pcre
depende en gran medida de las necesidades de tu proyecto y las capacidades específicas de regex requeridas.