Haskell:
Utilisation des expressions régulières
Comment :
En Haskell, les fonctionnalités regex ne font pas partie de la bibliothèque standard, nécessitant l’utilisation de paquets tiers comme regex-base
accompagné d’un backend compatible tel que regex-posix
(pour le support des regex POSIX), regex-pcre
(pour les regex compatibles Perl), etc. Voici comment vous pouvez utiliser ces paquets pour travailler avec les expressions régulières.
D’abord, assurez-vous d’avoir les paquets installés en ajoutant regex-posix
ou regex-pcre
au fichier .cabal
de votre projet ou en installant via cabal directement :
cabal install regex-posix
ou
cabal install regex-pcre
Utilisation de regex-posix
:
import Text.Regex.Posix ((=~))
-- Vérifier si une chaîne correspond à un motif
isMatch :: String -> String -> Bool
isMatch text pattern = text =~ pattern :: Bool
-- Trouver la première correspondance
findFirst :: String -> String -> String
findFirst text pattern = text =~ pattern :: String
main :: IO ()
main = do
print $ isMatch "hello world" "wo"
-- Sortie: True
print $ findFirst "bonjour, bonne nuit" "bon"
-- Sortie: "bon"
Utilisation de regex-pcre
:
import Text.Regex.PCRE ((=~))
-- Trouver toutes les correspondances
findAll :: String -> String -> [String]
findAll text pattern = text =~ pattern :: [String]
main :: IO ()
main = do
print $ findAll "test1 test2 test3" "\\btest[0-9]\\b"
-- Sortie: ["test1","test2","test3"]
Chaque bibliothèque a ses particularités, mais la méthodologie générale d’utilisation de =~
pour appliquer la regex reste constante, que ce soit pour vérifier une correspondance ou extraire des sous-chaînes. Le choix entre regex-posix
ou regex-pcre
dépend largement des besoins de votre projet et des capacités regex spécifiques requises.