In der stdlib von Haskell gibt es im Vergleich zu den meisten anderen keine Regex Implementation, in der Sprache ist es üblich stattdessen mit Parser Combinators zu arbeiten.
Also wenn man konkret auf Dateipfade matchen will, dann sind Glob-Patterns das Mittel der Wahl. Sieht dann so aus: /home/fr*/Downloads/
Der Stern ist dann eben ein Wildcard, so dass du damit z.B. die Downloads-Verzeichnisse der Benutzer franz und fridolin löschen könntest.
Sonst kenne ich persönlich eigentlich nur immer so Einzelphänomene, also wo’s dann für eine Programmiersprache eine Bibliothek gibt, womit man dann ein Pattern z.B. mittels einer Builder-API zusammensetzen kann.
Die können dann oft auch zu einem Regex übersetzt werden, so dass man sie in bestehende APIs reinwerfen kann, die eben ein Regex erwarten.
Keine Ahnung, persönlich finde nicht, dass man sich dadurch das Erlernen von Regex sparen kann…
Jetzt muss ich mal meine mangelnde Bildung offenbaren: welche Alternativen gäbe es da?
Parser Combinators, beispielsweise: https://docs.rs/nom/latest/nom/
In der stdlib von Haskell gibt es im Vergleich zu den meisten anderen keine Regex Implementation, in der Sprache ist es üblich stattdessen mit Parser Combinators zu arbeiten.
Puh, hatte nicht erwartet, dass du das mit “Syntax zum Pattern Matching” meinst. Das ist ja schon ein vollwertiger Parser. 😅
Also wenn man konkret auf Dateipfade matchen will, dann sind Glob-Patterns das Mittel der Wahl. Sieht dann so aus:
/home/fr*/Downloads/Der Stern ist dann eben ein Wildcard, so dass du damit z.B. die
Downloads-Verzeichnisse der Benutzerfranzundfridolinlöschen könntest.Sonst kenne ich persönlich eigentlich nur immer so Einzelphänomene, also wo’s dann für eine Programmiersprache eine Bibliothek gibt, womit man dann ein Pattern z.B. mittels einer Builder-API zusammensetzen kann.
Die können dann oft auch zu einem Regex übersetzt werden, so dass man sie in bestehende APIs reinwerfen kann, die eben ein Regex erwarten.
Keine Ahnung, persönlich finde nicht, dass man sich dadurch das Erlernen von Regex sparen kann…
Pearl Regex ;)
Du machst mich weinend 😭