Att använda reguljära uttryck

Haskell:
Att använda reguljära uttryck

Hur:

I Haskell är regex-funktionalitet inte en del av standardbiblioteket, vilket kräver användning av tredjeparts paket såsom regex-base tillsammans med ett kompatibelt backend som regex-posix (för POSIX regex-stöd), regex-pcre (för Perl-kompatibelt regex), osv. Så här kan du använda dessa paket för att arbeta med reguljära uttryck.

Först, se till att du har paketen installerade genom att lägga till regex-posix eller regex-pcre i ditt projekts .cabal-fil eller installera via cabal direkt:

cabal install regex-posix

eller

cabal install regex-pcre

Använda regex-posix:

import Text.Regex.Posix ((=~))

-- Kontrollera om en sträng matchar ett mönster
isMatch :: String -> String -> Bool
isMatch text mönster = text =~ mönster :: Bool

-- Hitta första matchen
findFirst :: String -> String -> String
findFirst text mönster = text =~ mönster :: String

main :: IO ()
main = do
    print $ isMatch "hello world" "wo"
    -- Utdata: True
    print $ findFirst "good morning, good night" "good"
    -- Utdata: "good"

Använda regex-pcre:

import Text.Regex.PCRE ((=~))

-- Hitta alla matchningar
findAll :: String -> String -> [String]
findAll text mönster = text =~ mönster :: [String]

main :: IO ()
main = do
    print $ findAll "test1 test2 test3" "\\btest[0-9]\\b"
    -- Utdata: ["test1","test2","test3"]

Varje bibliotek har sina särdrag, men den allmänna metoden att använda =~ för att applicera regex förblir konsekvent, oavsett om det handlar om att kontrollera för en matchning eller extrahera delsträngar. Valet mellan regex-posix och regex-pcre beror i stor utsträckning på ditt projekts behov och de specifika regex-funktioner som krävs.