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.