Interessensabfrage: Wer will RegExps lernen?

Smalltalk
Benutzeravatar
TRex
Moderator
Beiträge: 8079
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von TRex » 02.04.2022 09:02:42

Wir können auch mit Automaten und BNFs anfangen, falls jemandem regex zu praxisnah ist :P
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von eggy » 02.04.2022 09:30:06

Den Weg über die Automaten und Reduktion halte ich für grundsätzlich für nen guten Ansatz.
Das Grundverständnis dort macht's, meiner Erfahrung nach, sehr viel einfacher, wenn's mal richtig kompliziert wird.

Ich hab Meillo aber so verstanden, dass es ihm lieber wäre, das von der praktischen Seite her aufzubauen.
Ist meiner Meinung nach auch nen guter Ansatz, weil die meisten Fälle, auf die man anfangs in der Praxis stößt, recht übersichtlich sind.

Wir können den theoretischen Teil dann auch gerne im Anschluss/parallel durchgehen. Falls es überhaupt jemanden interessiert :mrgreen:

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von Meillo » 02.04.2022 10:00:06

Genau wie eggy schreibt: Die harte Theorie kommt anschliessend.

Mir ist es wichtig, niemanden abzuhaengen, darum verzichte ich so gut es geht auf einen theorielastigen Eindruck, der viele abschrecken duerfte. Gleichzeitig will ich auch nicht nur Praxisbeispiele bringen, weil man, und da stimme ich euch zu, REs nur verstehen kann wenn man sie eben versteht. Bloss ist mein Ziel, dieses Verstehen nicht aus der Sprachtheorie sondern aus ganz normalem nachvollziehbarem Denken heraus zu erzeugen. Mal sehen wie das klappen wird. ;-)

Ich bin schon voll gespannt auf das Experiment. Morgen geht's los! :-D
Use ed once in a while!

buhtz
Beiträge: 1106
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von buhtz » 04.04.2022 13:55:51

Da ich scheinbar der Auslöser oder der besagte letzte Tropfen war, der das Thema zum anlaufen brauchte, muss ich mich doch auch mal äußern.

Erst einmal Danke. :hail:

So eine Session hier im Forum habe ich noch nie mitgemacht und habe daher keiner genaue Vorstellung. Inhaltlich würde ich mir aber wünschen, etwas zu lernen, was ich eben nicht in Tutorials, Blog-Posts und YouTube Videos selbst nachlesen kann. Es geht eben doch ein bisschen um die Theorie; das große Bild dahinter. Was haben sich die RegEx ErfinderInnen dabei gedacht?

Ein ganz praktisches Problem: RegEx im Code (z.B. Python) reduziert dessen Verständlichkeit und daher auch Wartbarkeit. Das Argument, solcher Code sei wartbarer, weil er kürzer ist, als konventioneller Code, lass ich nicht gelten. Kurz ist nicht gleich wartbarer; schließt das aber auch nicht aus. Auch langer Code ist wartbar, solange er eben ordentlich strukturiert und gekapselt ist. Zurück zum Problem, dass RegEx auf den ersten Blick nicht lesbar und verständlich ist. Nicht jeder kann RegEx, wie wir hier wissen. Sogar die Entwickler, die RegEx in ihrem eigene Code nutzen, können dir nächste Woche schon nicht mehr sagen, was das soll und tut.
Die praktische Frage ist also, wie man Code mit RegEx ordentlich dokumentiert. Wie beschreibt man, z.B. in einem Kommentar / Doc-String, was das RegEx Pattern tut? Gibt es dafür evtl. sogar eine Guideline?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von eggy » 04.04.2022 14:14:48

buhtz hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 13:55:51
Sogar die Entwickler, die RegEx in ihrem eigene Code nutzen, können dir nächste Woche schon nicht mehr sagen, was das soll und tut.
"Was das tut": ganz einfach: GENAU das, was da steht :mrgreen:.

"Was das soll": Semantik. Die Intention etwas zu tun, steckt nur im Kopf des Entwicklers. Das in unmissverständliche Worte zu bringen, ist oftmals schwierig, und kann nur derjenige machen, der sich den jeweiligen RegEx ausgedacht hat. Denn, ob nen vermeintlicher Edgecase vergessen wurde oder absichtlich nicht gesondert behandelt wird, kann kein anderer wissen.

Wie man RegExe wieder "menschenlesbar" macht? In Gruppen zerlegen und Stückweise aufdröseln. Wie? Im einfachen Fall Draufsehen, in komplexen Fällen über Automaten und Tabellen. Mehr dazu im Theorieteil.

thoerb
Beiträge: 1677
Registriert: 01.08.2012 15:34:53
Lizenz eigener Beiträge: MIT Lizenz

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von thoerb » 04.04.2022 14:18:11

buhtz hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 13:55:51
Ein ganz praktisches Problem: RegEx im Code (z.B. Python) reduziert dessen Verständlichkeit und daher auch Wartbarkeit. Das Argument, solcher Code sei wartbarer, weil er kürzer ist, als konventioneller Code, lass ich nicht gelten.
Der Reguläre Ausdruck hat ja eigentlich mit dem Programmcode nichts zu tun, sondern ist ein Suchmuster. Man kann auch beides voneinander trennen, in dem man den Regulären Ausdruck in einer Variable speichert. Das macht es dann wieder übersichtlicher.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von Meillo » 04.04.2022 14:30:07

buhtz hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 13:55:51
So eine Session hier im Forum habe ich noch nie mitgemacht und habe daher keiner genaue Vorstellung. Inhaltlich würde ich mir aber wünschen, etwas zu lernen, was ich eben nicht in Tutorials, Blog-Posts und YouTube Videos selbst nachlesen kann. Es geht eben doch ein bisschen um die Theorie; das große Bild dahinter. Was haben sich die RegEx ErfinderInnen dabei gedacht?
Das groessere Bild dahinter will ich auch vermitteln -- das passt also gut zusammen.

Was du hier im DFDE bekommst, was ueber Materialien im Internet hinaus geht, ist die Moeglichkeit zu interagieren und die Inhalte fuer dich passend mitzugestalten. :THX:

Zudem denke ich, dass meine Herangehensweise eine etwas andere ist als sie zumeist im Internet zu finden ist. Ich hoffe, dass sie den Zugang zu REs erleichtert.

Fuer den Anfang habe ich inzwischen einen Plan, um die Grundlagen aufzubauen. Dann werde ich die Wuensche in diesem Thread abarbeiten. eggy traegt die richtige Theorie bei. Und sicherlich werden sich auch noch weitere User finden, die jeweils etwas ueber ihre jeweilige Lieblingsprogrammiersprache beisteuern koennen. An der Stelle beginnt dann das Wunschkonzert. ;-)

Auch fuer Themen wie das folgende, das sich ja eher um Stil, Konventionen und Erfahrungen dreht und nur zu einem Teil direkt mit REs zu tun hat, sondern mehr eine generelle Frage zu fortgeschrittenen Programmiertechniken und die Dokumentation von eher kryptischem Code ist, wird dann Raum sein. Ich werde das spaeter aufgreifen.
Ein ganz praktisches Problem: RegEx im Code (z.B. Python) reduziert dessen Verständlichkeit und daher auch Wartbarkeit. Das Argument, solcher Code sei wartbarer, weil er kürzer ist, als konventioneller Code, lass ich nicht gelten. Kurz ist nicht gleich wartbarer; schließt das aber auch nicht aus. Auch langer Code ist wartbar, solange er eben ordentlich strukturiert und gekapselt ist. Zurück zum Problem, dass RegEx auf den ersten Blick nicht lesbar und verständlich ist. Nicht jeder kann RegEx, wie wir hier wissen. Sogar die Entwickler, die RegEx in ihrem eigene Code nutzen, können dir nächste Woche schon nicht mehr sagen, was das soll und tut.
Die praktische Frage ist also, wie man Code mit RegEx ordentlich dokumentiert. Wie beschreibt man, z.B. in einem Kommentar / Doc-String, was das RegEx Pattern tut? Gibt es dafür evtl. sogar eine Guideline?

Ich freue mich natuerlich, dass du dabei bist ... und ja, du hast ganz recht: Da du gewissermassen der Ausloeser warst, bist du nun gewissermassen auch in der Pflicht, vorbildlich aktiv mitzuarbeiten. :-P ;-)
Use ed once in a while!

Benutzeravatar
TRex
Moderator
Beiträge: 8079
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von TRex » 04.04.2022 16:42:48

buhtz hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 13:55:51
Sogar die Entwickler, die RegEx in ihrem eigene Code nutzen, können dir nächste Woche schon nicht mehr sagen, was das soll und tut.
Oh doch, mit dem genannten Trick und natürlich Erfahrung, um die Ausdrücke schneller zu lesen.
eggy hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 14:14:48
Wie man RegExe wieder "menschenlesbar" macht? In Gruppen zerlegen und Stückweise aufdröseln. Wie? Im einfachen Fall Draufsehen, in komplexen Fällen über Automaten und Tabellen. Mehr dazu im Theorieteil.
Genau. Das Gruppieren kannst du schon beim Schreiben machen, und das lohnt sich sehr oft bei mittelmäßig komplexen Ausdrücken bereits. Also nicht nur den String vierteilen, sondern tatsächlich benannte "Gruppen" nutzen.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von Meillo » 04.04.2022 16:47:25

TRex hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 16:42:48
eggy hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 14:14:48
Wie man RegExe wieder "menschenlesbar" macht? In Gruppen zerlegen und Stückweise aufdröseln. Wie? Im einfachen Fall Draufsehen, in komplexen Fällen über Automaten und Tabellen. Mehr dazu im Theorieteil.
Genau. Das Gruppieren kannst du schon beim Schreiben machen, und das lohnt sich sehr oft bei mittelmäßig komplexen Ausdrücken bereits. Also nicht nur den String vierteilen, sondern tatsächlich benannte "Gruppen" nutzen.
Klasse! Der Dino meldet sich (mit seinen kurzen Aermchen) fuer eine Kurseinheit zu dem Thema im spaeteren Verlauf der Veranstaltung. :THX:

8)
Use ed once in a while!

buhtz
Beiträge: 1106
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von buhtz » 06.04.2022 09:27:33

TRex hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 16:42:48
buhtz hat geschrieben: ↑ zum Beitrag ↑
04.04.2022 13:55:51
Sogar die Entwickler, die RegEx in ihrem eigene Code nutzen, können dir nächste Woche schon nicht mehr sagen, was das soll und tut.
Oh doch, mit dem genannten Trick und natürlich Erfahrung, um die Ausdrücke schneller zu lesen.
Erfahrung ist das Problem. Nein, eigentlich ist das Problem, dass man im FOSS Umfeld immer Erfahrung voraussetzt. Am Ende muss man das halt für jedes Projekt selbst entscheiden. Aber in meinem Kontext möchte ich jedes ScriptKidy und jeden Schul-Nerd der auf die Idee kommt etwas zu meinem Code beizutragen auch entsprechend an die Hand nehmen. Das ist tatsächlich meine Zielgruppe für meine Code Dokumentation. Im Kontext von RegEx reihe ich mich da selbst eigentlich auch ein. RegEx werde ich nie in dem Umfang und der Regelmäßigkeit nutzen, dass ich es out-of-the-box lesen könnte; d.h. schon für mich selbst muss die Docu DAU-tauglich sein.

Besonders im Kontext von RegEx fällt mir das immer auf, dass sich Leute mit Ihren RegEx Kenntnissen brüsten, mit pattern um sich werfen und es "toll" finden, wenn es keiner versteht. Im Python-Kontext fallen mir hier die one-liner-Fetischisten ein. Diese Ich-bin-der-Experte-und-du-hast-keine-Ahnung-Wall steht in der FOSS Welt (eigentlich IT generell) noch viel zu häufig rum. Linux Distros kann man auch schon an der Höhe dieser Wall beurteilen. Dieses deutsche Debian Forum trägt sehr viel dazu habe, dass die Debian Wall nur bis zu den Knien reicht. (Warum gibts hier keine Herz-Smilies?) Und diese RegEx Session ist auch ein schönes positives Beispiel dafür.

Sorry, war jetzt abgedriftet.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
Ibex
Beiträge: 319
Registriert: 25.07.2008 20:54:19

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von Ibex » 06.04.2022 11:40:10

Ich würde mich sehr gerne mit dem Thema beschäftigen, bin mir aber nicht sicher ob ich genug Vorkenntnis mitbringe um folgen zu können, und der Sonntag gehört auch den Kids, so dass es vermutlich zeitlich schwierig wird.

Wie kann ich mir den Kurs den vorstellen? Werden Fragen und Lösungen hier im Forum gepostet und diskutiert? Gäbe es auch die Möglichkeit, das ganze später nachzulesen und nachzuarbeiten?

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von eggy » 06.04.2022 11:52:13

Ibex hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 11:40:10
Wie kann ich mir den Kurs den vorstellen? Werden Fragen und Lösungen hier im Forum gepostet und diskutiert? Gäbe es auch die Möglichkeit, das ganze später nachzulesen und nachzuarbeiten?
Da geht's los: viewtopic.php?t=183942
Ersten Thread lesen. Ein paar Gedanken zu den Fragen die Meillo stellt machen. Evtl Posten.
Nächste Woche geht's dann weiter.
Und klar kannst Du das im eigenen Tempo machen, und falls Fragen auftreten, die auch noch später stellen.
Zeitnah wäre besser, weil alle gedanklich irgendwie an der gleichen Stelle sind.
Aber später ist natürlich auch ok. Es sollten dann auch genug Leute, die schon nen Stück weiter mitgemacht haben hier sein, die bei den "alten Kapiteln" auch helfen können.

Antworten