Säännöllisten lausekkeiden käyttö

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-posix

tai

cabal install regex-pcre

Kä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.