Manche Menschen denken, wenn sie mit einem Problem konfrontiert werden: âIch weiĂ, ich verwende Regex.â Jetzt haben sie zwei Probleme.
ich_iel
Die offizielle Zweigstelle von ich_iel im Fediversum.
Alle Pfosten mĂŒssen den Titel 'ich_iel' haben, der Unterstrich darf durch ein beliebiges Symbol oder Bildschriftzeichen ersetzt werden. Ihr dĂŒrft euch frei entfalten!
đ± Empfohlene Schlaufon-Applikationen fĂŒr Lassmich
Befreundete Kommunen:
Sonstiges:
Regeln:
1. Seid nett zueinander
Diskriminierung anderer Benutzer, Beleidigungen und Provokationen sind verboten.
2. Pfosten mĂŒssen den Titel 'ich_iel' oder 'ich iel' haben
Nur Pfosten mit dem Titel 'ich_iel' oder 'ich iel' sind zugelassen. Alle anderen werden automatisch entfernt.
Unterstrich oder Abstand dĂŒrfen durch ein beliebiges Textsymbol oder bis zu drei beliebige Emojis ersetzt werden.
3. Keine HochwÀhl-Maimais oder (Eigen)werbung
Alle Pfosten, die um HochwĂ€hlis bitten oder Werbung beinhalten werden entfernt. Hiermit ist auch Eigenwerbung gemeint, z.b. fĂŒr andere Gemeinschaften.
4. Keine BildschirmschĂŒsse von Unterhaltungen
Alle Pfosten, die BildschirmschĂŒsse von Unterhaltungen, wie beispielsweise aus WasistApplikaton oder Zwietracht zeigen, sind nicht erlaubt. Hierzu zĂ€hlen auch Unterhaltungen mit KIs.
5. Keine kantigen BeitrÀge oder Meta-BeitrÀge
ich_iel ist kein kantiges Maimai-Brett. Meta-BeitrĂ€ge, insbesondere ĂŒber gelöschte oder gesperrte BeitrĂ€ge, sind nicht erlaubt.
6. Keine ĂberfĂ€lle
Wer einen Ăberfall auf eine andere Gemeinschaft plant, muss diesen zuerst mit den Mods abklĂ€ren. Brigadieren ist strengstens verboten.
7. Keine Ă40-Maimais
Maimais, die es bereits in die WasistApplikation-Familienplauderei geschafft haben oder von RĂŒdiger beim letzten Stammtisch herumgezeigt wurden, sind besser auf /c/ichbin40undlustig aufgehoben.
8. ich_iel ist eine humoristische Plattform
Alle Pfosten auf ich_iel mĂŒssen humorvoll gestaltet sein. Humor ist subjektiv, aber ein Pfosten muss zumindest einen humoristischen Anspruch haben. Die AtmosphĂ€re auf ich_iel soll humorvoll und locker gehalten werden.
9. Keine Polemik, keine KöderbeitrÀge, keine Falschmeldungen
BeitrĂ€ge, die wegen Polemik negativ auffallen, sind nicht gestattet. Desweiteren sind Pfosten nicht gestattet, die primĂ€r Empörung, Aufregung, Wut o.Ă. ĂŒber ein (insbesonders, aber nicht nur) politisches Thema hervorrufen sollen. Die Verbreitung von Falschmeldungen ist bei uns nicht erlaubt.

Bitte beachtet auch die Regeln von Feddit.org
Es gibt aber halt kein besseres Mittel (zumindest habe ich noch nichts besseres gefunden) um Strings zu parsen (was bis jetzt eine meiner absoluten Hassaufgaben war)
kommt auf deine strings an und was du mit denen machen willst.
query parameter aus ner url raussuchen? gute wahl.
strukturiertes komplexes zeug wie xml oder json? nimm n speziellen parser, ausser dich interessiert nur ob irgend ein muster darin vorkommt und willst sonst nix machen.
du brauchst n rekursives muster? ekelig, voll ekelig. kann irgendwer machen den ich nicht mag oder wir machen das nicht mit nem regulÀren ausdruck. pfui daibel.
query parameter aus ner url raussuchen? gute wahl.
War genau das wofĂŒr ich es jetzt gebraucht habe. Das ist wirklich enorm angenehm. Was auch gut geht ist, wenn man Nutzer Eingaben parsen will.
Ihre Strings trÀgt Kuh vor allem.
du brauchst n rekursives muster? [âŠ] kann irgendwer machen
Mein IT-Studium hat gerade meinen Körper verlassen.
Regexe sind zwar fĂŒr die meisten schnell-und-dreckig AnwendungsfĂ€lle phĂ€nomenal nĂŒtzlich aber insgesamt gesehen immer nich sehr eingeschrĂ€nkt, was die parsebaren Sprachen angeht.
Ob hĂ€rtere GeschĂŒtze aufgefahren werden mĂŒssen, merkt man meist, wenn das mit den Regexen absolut schmerzhaft wird oder gar nicht mehr so recht klappen will (versuch z.B. mal, einen Regex zu schreiben, der Worte der Form 0...01...1 erkennt, wobei die Anzahl der 0er und 1er gleich ist; diese Sprache ist nĂ€mlich nicht regulĂ€r und ohne Regex-Erweiterungen gar nicht ĂŒber Regexe erkennbar). Eine solche Eskalationsstufe stellen PEGs dar. Falls das nix bringt kann man immer noch mit lex und yacc sich nen eigenen parser generieren lassen aber in die Situation kommt man eher selten.
In diesem Sinne viel SpaĂ mit regulĂ€ren AusrĂŒcken, mögen sie dir bei den nĂ€chsten Codierherausforderungen das Leben vereinfachen!
Schlug mich zu es
Das ist jetzt ziemlich kontextfrei
Made my day , danke đ€Ł
Witzig, obwohl in formaler Sprache
EntCYKender Scherz!
Gute Webseite, um Regex-Patterns auszuprobieren und erklÀrt zu bekommen: https://regex101.com/
Kenne die schon. Ist auch gut, weil man direkt die an einem Test String ausprobieren kann.
Falls du nicht schon was Ăhnliches hast, hier mein Lieblingsspielplatz zum Ausprobieren: https://regexr.com/
Ich habe bis jetzt immer regex101.com genutzt.
Ich habe mich damit schon öfters beschÀftigt. Die grundsÀtzliche Funktionsweise macht schon Sinn, aber die Syntax wirklich zu verstehen und es sich dann auch noch zu merken finde ich sehr schwierig - jedes Mal, wenn ich es brauche, krebse ich wieder rum. Entsprechend benutze ich wenn möglich was anderes, Regex ist ja nicht die einzige Syntax zum Pattern Matching.
Regex ist ja nicht die einzige Syntax zum Pattern Matching.
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. đ
So halb. Man kann damit Parser bauen. Andererseits - was ist eine Regex wenn nicht ein kleiner Parser?
Naja, Regex ist ja erstmal nur die Syntax zur Beschreibung eines Textes. Das muss ja dann ein Parser noch interpretieren und damit etwas machen.
Bei so einem Parser Combinator purzelt ja direkt ein Parser-Programm heraus, wenn ich das richtig verstehe. Also ja, da gibt es auch eine gewisse Syntax, die auch die Struktur des zu parsenden Textes irgendwo widerspiegelt, aber es ist nicht nur eine Beschreibung des Textes, sondern formuliert direkt die Parser-Logik.
Also ja, wenn man sowieso ein Programm schreibt, macht es wahrscheinlich keinen groĂen Unterschied. Aber gibt es ja schon auch oft, dass man ein bestehendes Programm hat und da nur noch ein Regex mitgeben kann, um das Verhalten zu konfigurieren...
Naja, Regex ist ja erstmal nur die Syntax zur Beschreibung eines Textes. Das muss ja dann ein Parser noch interpretieren und damit etwas machen.
Ich verstehe was du meinst. Falls die Implementation die Regex direkt zu einem Parser kompiliert und in einer VM ausfĂŒhrt, ist sie quasi selber der Parser bzw der Quellcode dafĂŒr. Aber ich verstehe deine Sicht, ich sage nicht dass du falsch liegst.
Bei so einem Parser Combinator purzelt ja direkt ein Parser-Programm heraus, wenn ich das richtig verstehe.
Nein, das wÀre der Fall bei yacc & co, wo man eine Grammatik schreibt und ein Parser generiert wird. nom ist vielmehr eine Bibliothek, mit welcher man von Hand eigene Parser implementiert. Sie besteht aus ganz einfachen, ganz generalisierten Komponenten, die man kombiniert - deswegen der Name Parser Combinator Library.
aber es ist nicht nur eine Beschreibung des Textes, sondern formuliert direkt die Parser-Logik.
Es gibt viele direkte Equivalenzen. Es gibt Kombinatoren fĂŒr "eine oder mehrere LeerschlĂ€ge" und "exakt ein Kleinbuchstabe" und "optional eine Ziffer" und so weiter - das ist genau dasselbe, was man in Regex auch ausdrĂŒckt. Ich wĂŒrde sagen, nom ist ein Superset von Regex.
Pearl Regex ;)
Du machst mich weinend đ
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 ich nicht, dass man sich dadurch das Erlernen von Regex sparen kann...
Nicht zu vergessen, die drölfzig verschiedenen Dialekte, und der Fakt dass das Werkzeug das Du gerade nutzen willst leider genau diese eine Funktion nicht unterstĂŒtzt oder hinter einem neuen obskuren Sonderzeichen versteckt, dass es nicht auf Deiner Tastatur gibt.
Hast du ein Beispiel fĂŒr so ein obskures Sonderzeichen?
Klar, aber ich kann es leider nicht eintippen :p
Dann warte mal ab! Das zweite und dritte Mal werden noch besser!
Ich wĂŒnsche viel SpaĂ, die in Programmen zu verwenden. GrĂŒĂe gehen raus an den String \\\\
Wenn du Regex verwendest, schreibt eine Reihe von positiven und negativen Tests um zu prĂŒfen ob es wirklich tut was tu willst.
Mache ich immer, weil ich Regex direkt in regex101.com teste.
Du bist drin fĂŒr eine gute Zeit: regexcrossword.com
Ich hĂ€tte nicht gedacht, dass ich das so enorm lieben wĂŒrde.
Ich liebe Regex, aber es ist gleichzeitig ein gutes Beispiel fĂŒr ~~Write-Only~~ Schreib-Nur-Daten
Regex ist toll, aber die Syntax nervt.