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-posixeller
cabal install regex-pcreBruke 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.