Haskell:
Säännöllisten lausekkeiden käyttö
Kuinka:
Haskellissa säännöllisen lausekkeen toiminnot eivät kuulu vakio kirjastoon, joten on tarpeen käyttää kolmannen osapuolen paketteja kuten regex-base yhdessä yhteensopivan taustajärjestelmän kanssa kuten regex-posix (POSIX-yhteensopivaa regex-tukea varten), regex-pcre (Perl-yhteensopivaa regex-tukea varten), jne. Tässä on, miten voit käyttää näitä paketteja työskennelläksesi säännöllisten lausekkeiden kanssa.
Ensin, varmista että sinulla on paketit asennettuna lisäämällä regex-posix tai regex-pcre projektisi .cabal tiedostoon tai asentamalla suoraan cabalin kautta:
cabal install regex-posixtai
cabal install regex-pcreKäyttäen regex-posix:
import Text.Regex.Posix ((=~))
-- Tarkista, vastaako merkkijono kaavaa
isMatch :: String -> String -> Bool
isMatch teksti kaava = teksti =~ kaava :: Bool
-- Etsi ensimmäinen vastaavuus
findFirst :: String -> String -> String
findFirst teksti kaava = teksti =~ kaava :: String
main :: IO ()
main = do
print $ isMatch "hello world" "wo"
-- Tuloste: True
print $ findFirst "good morning, good night" "good"
-- Tuloste: "good"Käyttäen regex-pcre:
import Text.Regex.PCRE ((=~))
-- Etsi kaikki vastaavuudet
findAll :: String -> String -> [String]
findAll teksti kaava = teksti =~ kaava :: [String]
main :: IO ()
main = do
print $ findAll "test1 test2 test3" "\\btest[0-9]\\b"
-- Tuloste: ["test1","test2","test3"]Kullakin kirjastolla on omat erityispiirteensä, mutta yleinen metodologia =~ käytön kanssa regexin soveltamiseksi pysyy johdonmukaisena, oli kyseessä sitten vastaavuuden tarkistus tai alimerkkijonojen poiminta. Valinta regex-posix ja regex-pcre välillä riippuu suuresti projektisi tarpeista ja vaaditusta erityisestä regex-ominaisuudesta.