, was ich versuche zu tun String mit regulärem Ausdruck zu analysieren und Html Element als Ausgabe erhalten, so sollte die Funktion Signatur sein wie folgend:ELM/Haskell: Verwenden Sie Regulärer Ausdruck (Regex) einen String zu suchen und machen HTML-Ansicht
parse : String -> Html Msg
, bevor wir in den Code tauchen lassen wir ein Beispiel, wie der Code, um eine klare Vorstellung zu haben, da eine der folgenden Zeichenkette wie unten verhalten soll:
Eingang: hallo (! fett!) ich bin ein fettgedruckter Text (! BOLD!) bla bla la
erwartete Ausgabe: div [] [Text "Hallo", b []
myReplace str expression =
replace (All) (regex expression) matchToString str
--myreplace "hello (!BOLD!) bold (!BOLD!) " "(!BOLD!)" == "hello b[][] hello"
:]
, um dieses Ziel zu erreichen, ich habe die Regex-Bibliothek zur Verfügung gestellt in ELM Paket
replace : HowMany -> Regex -> (Match -> String) -> String -> String
oben auf der obigen Funktion, i erstellt die 2-Funktion aufgeführt hier nach dem Gebrauch
mit der unten stehenden Hilfsfunktion, ist diese Funktion ein Spiel nehmen und den Anfang und das Ende für den regulären Ausdruck
matchToString : Match -> String
matchToString match =
case match.number `rem` 2 of
0 ->"]" -- mtaches the close bracket
_ -> "B [][" --mtaches the open bracket
angeben, aber was ich will bekommen, ist: div [][text "hello", b[][text "bold"]]
, wie ich meinen Code verbessern könnte und schreibe den kompletten Parser? oder wie könnte ich den gleichen Zweck in Haskell erreichen?
Referenz: elm regex source