Reguläre Ausdrücke verwenden

Elm:
Reguläre Ausdrücke verwenden

Wie geht das:

Elm verfügt nicht über eingebaute regex-Funktionen in seiner Kernbibliothek, was die Verwendung von Drittanbieter-Bibliotheken für diese Operationen erforderlich macht. Eine der beliebten Auswahlmöglichkeiten für die Arbeit mit regex ist elm/regex. Sie können es Ihrem Projekt hinzufügen, indem Sie elm install elm/regex verwenden.

So können Sie elm/regex für einige häufige Aufgaben verwenden:

1. Ein Muster abgleichen

Um zu überprüfen, ob ein String einem Muster entspricht, können Sie Regex.contains verwenden.

import Regex

pattern : Regex.Regex
pattern = Regex.fromString "^[a-zA-Z0-9]+$" |> Maybe.withDefault Regex.never

isAlphanumeric : String -> Bool
isAlphanumeric input = Regex.contains pattern input

-- Beispiel Nutzung:
isAlphanumeric "Elm2023"     -- Ausgabe: True
isAlphanumeric "Elm 2023!"   -- Ausgabe: False

2. Alle Treffer finden

Um alle Vorkommen eines Musters in einem String zu finden, können Sie Regex.find verwenden.

matches : Regex.Regex
matches = Regex.fromString "\\b\\w+\\b" |> Maybe.withDefault Regex.never

getWords : String -> List String
getWords input = 
    input
        |> Regex.find matches
        |> List.map (.match)

-- Beispiel Nutzung:
getWords "Elm macht Spaß!"  -- Ausgabe: ["Elm", "macht", "Spaß"]

3. Text ersetzen

Um Teile eines Strings, die einem Muster entsprechen, zu ersetzen, verwenden Sie Regex.replace.

replacePattern : Regex.Regex
replacePattern = Regex.fromString "Elm" |> Maybe.withDefault Regex.never

replaceElmWithHaskell : String -> String
replaceElmWithHaskell input = 
    Regex.replace replacePattern (\_ -> "Haskell") input

-- Beispiel Nutzung:
replaceElmWithHaskell "Lernen mit Elm macht Spaß!"  
-- Ausgabe: "Lernen mit Haskell macht Spaß!"

In diesen Beispielen wird Regex.fromString verwendet, um ein regex-Muster zu kompilieren, wobei \b Wortgrenzen abgleicht und \w jedes Wortzeichen abgleicht. Behandeln Sie immer das Maybe-Ergebnis von Regex.fromString, um sich gegen ungültige regex-Muster abzusichern, typischerweise mit Maybe.withDefault.