Haskell:
Bruke regulære uttrykk
Hvordan:
I Haskell er ikke regex-funksjonaliteter en del av det standard biblioteket, noe som nødvendiggjør bruk av tredjepartspakker som regex-base
sammen med en kompatibel bakpart som regex-posix
(for POSIX regex-støtte), regex-pcre
(for Perl-kompatible regex), osv. Slik kan du bruke disse pakkene for å arbeide med regulære uttrykk.
Først, sørg for at du har installert pakkene ved å legge til regex-posix
eller regex-pcre
i prosjektets .cabal
-fil eller installere via cabal direkte:
cabal install regex-posix
eller
cabal install regex-pcre
Bruke regex-posix
:
import Text.Regex.Posix ((=~))
-- Sjekk om en streng matcher et mønster
isMatch :: String -> String -> Bool
isMatch tekst mønster = tekst =~ mønster :: Bool
-- Finn det første treffet
findFirst :: String -> String -> String
findFirst tekst mønster = tekst =~ mønster :: String
main :: IO ()
main = do
print $ isMatch "hello world" "wo"
-- Utdata: True
print $ findFirst "god morgen, god natt" "god"
-- Utdata: "god"
Bruke regex-pcre
:
import Text.Regex.PCRE ((=~))
-- Finn alle treff
findAll :: String -> String -> [String]
findAll tekst mønster = tekst =~ mønster :: [String]
main :: IO ()
main = do
print $ findAll "test1 test2 test3" "\\btest[0-9]\\b"
-- Utdata: ["test1","test2","test3"]
Hver bibliotek har sine spesifikke egenskaper, men den generelle metoden å bruke =~
for å anvende regex forblir konsistent, enten det er for å sjekke for et treff eller ekstrahere delstrenger. Valget mellom regex-posix
eller regex-pcre
avhenger i stor grad av ditt prosjekts behov og de spesifikke regex-egenskapene som kreves.