RegExp-Kurs 01: Motivation

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 07.04.2022 22:08:08

rhHeini hat geschrieben: ↑ zum Beitrag ↑
07.04.2022 21:58:12
Christoph Franzen hat geschrieben: ↑ zum Beitrag ↑
07.04.2022 17:01:01
rhHeini hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 21:55:00
Und moderne Tools die ich bei der Arbeit verwende haben auch Anflüge von RegEx für Suchen/Ersetzen, z.B. Notepad++.
Der hat sogar echte reguläre Ausdrücke.
Ich weiss, aber nutzen kann ich das nicht weil ich das Zeuge nicht kapier ... jedenfalls wenns komplexer wird.
... weil du es noch nicht kapierst. ;-)

Einfach beim Kurs mitmachen. :THX:
Use ed once in a while!

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

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 08.04.2022 06:58:20

@all: Es waere klasse, wenn sich eine Person oder mehrere finden wuerden, die die Inhalte dieses Threads ein bisschen zusammenfassen/-kopieren wuerden ins Wiki. https://wiki.debianforum.de/Regul%C3%A4 ... r%C3%BCcke


Mein Plan ist es, den naechsten Teil schon in der ersten Wochenendhaelfte online zu stellen.
Use ed once in a while!

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: RegExp-Kurs 01: Motivation

Beitrag von smutbert » 08.04.2022 12:15:06

Hab einmal begonnen: https://wiki.debianforum.de/Regul%C3%A4 ... scher_Kurs und die Seite auch auf (bis jetzt vor allem eggys) Baustelle verlinkt.
(ich habe noch keine Vorstellung wie viele Seiten das am Ende werden)

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: RegExp-Kurs 01: Motivation

Beitrag von fischig » 08.04.2022 17:50:09

Nun suchen wir nach dem Ortsnamen ‚Au‘. Das ist zwar nur eine Suche, aber sie liefert uns leider auch ‚Auge‘, ‚Auto‘, usw.
In DOS-Pascal mache ich das so:

Code: Alles auswählen

FUNCTION enthaelt(einKette:STRING;prfKette:STRING;genau:BOOLEAN):BOOLEAN;
{ Die Funktion prüft, ob ein Zeichen oder eine Zeichenkette in einer anderen
  enthalten ist und gibt entsprechend ja o. nein zurück. Mit dem Param. genau
  kann die Groß- und Kleinschreibung ausgeschaltet werden.
      einKette: String, in dem gesucht werden soll. (längerer String)
      prfKette: Suchbegriff, der in einKette enthalten sein soll.
                (kürzerer String)
      genau:  wenn wahr, wird Groß- u. Klein berücksichtigt.
}

VAR
  tmpEin,
  tmpPrf : STRING; { Suchbegriff }
  zaehl : BYTE;

BEGIN
IF genau = ja_ THEN BEGIN
  tmpEin := einKette;tmpPrf := prfKette;END
 ELSE BEGIN
  tmpEin := fGross(einKette);tmpPrf := fGross(prfKette);
END{IF};
entHaelt := ne_;
FOR zaehl := 1 TO len(tmpEin)-(len(tmpPrf)-1) DO
  IF COPY(tmpEin,zaehl,len(tmpPrf)) = tmpPrf THEN BEGIN
    enthaelt := ja_;
    BREAK;
  END{IF};
{ENDFOR};
END;                     { F. enthaelt }
Wir wollen aber nur Treffer bei denen ‚Au‘ ein eigenständiges Wort ist
liefert die Funktion zwar (noch) nicht, könnt' ich aber locker einpflegen ,wenn gewünscht.
In einem Logfile interessieren uns alle Zeilen, die mit ‚incoming‘ beginnen. Wenn ‚incoming‘ irgendwo sonst innerhalb der Zeile vorkommt interessiert es uns nicht. Eine solche Unterscheidung ist mit einer Stringsuche nicht möglich.
Mache mich anheischig, mit Pascal eine Stringsuche zu formulieren, die das kann.
Ich habe, wie schon mehrfach gesagt, keine Ahnung von REs. Nutze ich die trotzdem?

Christoph Franzen
Beiträge: 197
Registriert: 22.08.2005 19:58:49
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Aachen

Re: RegExp-Kurs 01: Motivation

Beitrag von Christoph Franzen » 08.04.2022 19:05:05

fischig hat geschrieben: ↑ zum Beitrag ↑
08.04.2022 17:50:09
DOS-Pascal
Welches genau? Als ich zur Schule ging, hatten wir da Borlands Turbo-Pascal; inzwischen kommt ja Freedos mit Free Pascal daher.
Christoph

Christoph Franzen
Beiträge: 197
Registriert: 22.08.2005 19:58:49
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Aachen

Re: RegExp-Kurs 01: Motivation

Beitrag von Christoph Franzen » 08.04.2022 19:12:21

fischig hat geschrieben: ↑ zum Beitrag ↑
08.04.2022 17:50:09
Mache mich anheischig, mit Pascal eine Stringsuche zu formulieren, die das kann.
Ich habe, wie schon mehrfach gesagt, keine Ahnung von REs. Nutze ich die trotzdem?
Naja, ich bin kein Informatiker, aber ich würde mal sagen: nein. Mathematisch gleichwertig sind reguläre Ausdrücke mit „endlichen Automaten“; Du benutzt also eine Automaten-Formulierung, nämlich die in Pascal, was mathematisch „turingvollständig“ ist, also prinzipiell alles berechnen könnte, was berechenbar ist (das braucht in der Theorie einen Automaten mit unendlichem Speicherplatz, aber das hier konkret zu lösende Problem ist ja „platzsparend“).
Christoph

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: RegExp-Kurs 01: Motivation

Beitrag von fischig » 08.04.2022 19:17:41

Borland Pascal für DOS
Freepascal ist zwar drauf, nutze ich aber kaum. Ich versteh' das Handbuch nicht, ich vermute weil: ich bin kein Informatiker. :P

Christoph Franzen
Beiträge: 197
Registriert: 22.08.2005 19:58:49
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Aachen

Re: RegExp-Kurs 01: Motivation

Beitrag von Christoph Franzen » 08.04.2022 19:36:21

fischig hat geschrieben: ↑ zum Beitrag ↑
08.04.2022 19:17:41
Borland Pascal für DOS
Freepascal ist zwar drauf, nutze ich aber kaum. Ich versteh' das Handbuch nicht, ich vermute weil: ich bin kein Informatiker. :P
Oder Du traust Dir mal wieder zu wenig zu? Hier das offizielle deutschsprachige Wiki: https://wiki.freepascal.org/Main_Page/de Lohnt sich vermutlich schon deswegen, weil das Ding eine ansonsten unerreichte Menge an Pascal-Dialekten versteht.
Zuletzt geändert von Christoph Franzen am 08.04.2022 20:14:51, insgesamt 1-mal geändert.
Christoph

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: RegExp-Kurs 01: Motivation

Beitrag von fischig » 08.04.2022 19:48:32

Ich spiele nicht in der Gehaltsklasse von Freepascal - forum und -Wiki.
Eine von der Forenleitung abgesicherte offene Diskussionskultur wie hier ist halt selten, meine Wahrnehmung.

Konzentrieren wir uns lieber auf RE's

Christoph Franzen
Beiträge: 197
Registriert: 22.08.2005 19:58:49
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Aachen

Re: RegExp-Kurs 01: Motivation

Beitrag von Christoph Franzen » 08.04.2022 20:23:09

fischig hat geschrieben: ↑ zum Beitrag ↑
08.04.2022 19:48:32
Ich spiele nicht in der Gehaltsklasse von Freepascal - forum und -Wiki.
Eine von der Forenleitung abgesicherte offene Diskussionskultur wie hier ist halt selten, meine Wahrnehmung.

Konzentrieren wir uns lieber auf RE's
Meine Wahrnehmung ist, daß „Gehaltsklassen“ nur in „der Wirtschaft“ (und dem öffentlichen Dienst) existieren und da auch nicht mal ansatzweise mit „Intelligenzklassen“, „Wissensklassen“ oder „Verständnisklassen“ korrellieren, das sind reine „Privilegienklassen“. Weiterhin bezweifle ich hiermit, daß die offene Diskussionskultur hier gleich um Größenordnungen schlechter wäre, würde Feltel die nicht aktiv sicherstellen.
Christoph

TuxPeter
Beiträge: 2020
Registriert: 19.11.2008 20:39:02
Lizenz eigener Beiträge: MIT Lizenz

Re: RegExp-Kurs 01: Motivation

Beitrag von TuxPeter » 08.04.2022 21:21:03

Weil von fischig hier Pascal ins Spiel gebracht wurde:
Ich hatte, als alter Pascalianer, ja mal nach "free pascal regular exptession" in MetaGer gesucht, und es gibt eine Menge Packages. Eine - habe ich jetzt gerade nicht wieder gefunden - hatte eine richtig schöne übersichtliche Syntax, sicherlich nur eine Untermenge von RE, aber die Metasyntax hat höchstens eine halbe Seite in Anspruch genommen.
Ich hatte solche Aufgaben damals in meiner aktiven Pascal-Zeit mittels der standardmäßig mitgelieferten String-Funktionen gelöst, durch Zerlegung in Teilstrings, Wiederholungen, Umwandlung des durchsuchten Strings in Großbuchstaben, Umwandlung von Trennzeichen in einheitliche Zeichen usw., je nach Bedarf. Damit kam man ganz schön weit. Jedenfalls fanden meine Kunden meine Software recht brauchbar. Als Programmierer ist man mit solcher "atomaren" Arbeitsweise ganz nah am Problem u.U. schneller fertig als beim Einsatz hochintegrierter Fertig-Programme und -Routinen, die man je auch erst mal selber verstehen muss.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 09.04.2022 16:19:03

@all: Toll, dass so viele so engagiert dabei sind! Das freut mich. Der zweite Teil ist jetzt online. Dann koennt ihr schon am Wochenende damit beginnen. Das scheint mir sinnvoller zu sein als wenn ich ihn erst am Sonntag Abend veroeffentliche.

@smutbert: Danke fuer die Uebernahme ins Wiki!

@all: In diesem ersten Teil waren die Aufgaben ja nur zum Brainstormen da. Egal was ihr geantwortet habt, es war alles richtig. ;-)
Use ed once in a while!

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: RegExp-Kurs 01: Motivation

Beitrag von heisenberg » 04.05.2022 15:22:47

@Meillo: Wenn Du noch einen Identifizierer(z. B. "RegExpKurs-2022") samt einer Erklärung in den Thread stellst, dann kann man mit der Forensuche schnell alle Teile des Kurses finden. Ich habe Deine selbst erstellte Übersicht, die das gleiche ermöglicht auch gesehen.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von eggy » 04.05.2022 15:44:25

heisenberg hat geschrieben: ↑ zum Beitrag ↑
04.05.2022 15:22:47
(z. B. "RegExpKurs-2022")
:?: Die Einzelteile sind doch schon als "RegExp-Kurs" benannt, außerdem gibts den Übersichtsthread und die Wikiseite, alles gut zu finden.

Oder meinst Du Meillo macht das von nun an jedes Jahr :mrgreen:

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: RegExp-Kurs 01: Motivation

Beitrag von heisenberg » 04.05.2022 15:47:05

Ich bin da einfach ein Stück weit Perfektionist, der die Vorstellung hat, wenn ich da den Begriff eingebe, dass ich exakt nur die relevanten Beiträge bekomme. :-)

Kann man beipflichten, muss man aber nicht.

Ich füge mal die folgende ID überall ein, nach der man suchen kann:

IdRegExpKurs2022
Zuletzt geändert von heisenberg am 04.05.2022 16:09:54, insgesamt 2-mal geändert.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von eggy » 04.05.2022 16:07:09

Das schaffst Du eh nicht, sobald irgendwer in nem späteren komplett anderen Thread den Kurs hier erwähnt, ist Deine hübsch aufgeräumte Suche dahin. Deswegen ja die Übersichtsseite hier im Forum und die Seiten im Wiki. (Übrigens ein ganz großes Danke an unseren fleißigen Zusammenfasser dort :THX:)

Edit: @heisenberg, toll nun ist durch den Edit der Kontext weg. Ich meinte, Du schaffst es eh nicht, dass Du mit unserer Suche hier exakt nur diese Ergebnisse erhalten wird. Sobald Du jemand anderem im Forum sagst, suche nach "id_xyz" wird auch das in der Suche auftauchen. Du hast also umgehend das gleiche Problem wieder.
Falls Du die Sachen nur für Dich zur geheimen Verwendung taggst, ist das reichlich egoistisch und auch ziemlich überflüssig. Warum bookmarkst Du dann nicht gleich den Übersichtsthread oder hilfst mit, die Wikiseite auf dem aktuellen Stand zu halten? Dann brauchst Dir auch nur die eine Seite im Wiki zu merken.

Antworten