RegExp-Kurs 01: Motivation

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

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 05.04.2022 16:57:16

fischig hat geschrieben: ↑ zum Beitrag ↑
05.04.2022 15:55:59
Meillo hat geschrieben:Wuesstest du Fragen, die fuer dich hier Sinn machen wuerden?
Ich benötigte als Anfänger für einen Einstieg eine „rudimentäre“, vorläufige, beispielgestützte Erläuterung dessen, was ich mir unter REs vorstellen soll. Damit hätte ich den Aufgaben evtl. Sinn abgewinnen können.

Meine Motivation für eine Beschäftigung mit REs ist, dass ich mir Shell-Kommandos/Skripte zusammenbasteln kann, die Aufgaben lösen, die gegebene Programme für mich nicht oder nicht zu meiner Zufriedenheit lösen.
Vielleicht kannst du dich mit deinem konkreten Wunsch und deiner Zielrichtung noch etwas gedulden. Natuerlich wollen wir alle gleich zu Beginn schon die Antworten auf unsere Probleme haben, das verhindert dann aber dass man etwas ausholt, Grundlagen legt und eben genau diesen sanften Lernfortschritt geht. Wir koennten schon auch gleich die Felswand hoch zum Gipfel. Damit dabei nicht der Grossteil abgehaengt wird, muessen wir uns halt etwas Zeit fuer einen weiteren Weg nehmen. ;-)


Dennoch bemaengelst du korrekterweise die konkreten Beispiele, die auch bei dieser Einheit moeglich sind. (Das habe ich zuerst nicht gesehen.) Ich versuche hier ja zunaechst mal eine Abgrenzung zur Stringsuche zu taetigen und deren Begrenztheit aufzuzeigen. Statt das nur textuell zu beschreiben koennte man hierfuer auch kleine Aufgaben und Experimente durchfuehren ... und zwar mit `fgrep', das eine Stringsuche umsetzt. Damit koennen wir sehen und erfahren was ich im Text erklaert habe.

Es waere klasse, wenn sich eine freiwillige Person findet, die einen Input-Text erstellt, mit dem man die im Text erklaerten Beispiele mit `fgrep' demonstrieren kann.

Danke, fischig, fuer den Hinweis, der nun zu einer Verbesserung des Kurses gefuehrt hat. :THX:
Use ed once in a while!

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

Re: RegExp-Kurs 01: Motivation

Beitrag von fischig » 05.04.2022 17:04:20

Vielleicht kannst du dich mit deinem konkreten Wunsch und deiner Zielrichtung noch etwas gedulden.
Das kann ich nicht nur, das werde ich, denn anders geht's gar nicht, finde ich.
Ich wollte auch nur Rückfragen/Anregungen eines Unbedarften, nichtsdetotrotz Wissbegierigen an den/die Lehrer formulieren. Wenn's dummes Zeug ist, zeigt's mir halt.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 05.04.2022 17:10:02

(Edit: @fischig: alles klar. Ich habe deine Reaktion erst gesehen als ich meinen Post schon geschrieben hatte. Er ist aber auch nicht nur an dich, sondern zur Erklaerung an alle gerichtet.)
fischig hat geschrieben: ↑ zum Beitrag ↑
05.04.2022 16:51:20
@eggy

Code: Alles auswählen

[0-9]*
Wo unter diesen Zeichen ist jetzt der/ein reguläre(r) Ausdruck? Ich behaupte mal „[]“ ist ein solcher? oder sind's 2: einmal„[“ und einmal „]“? „*“ ist auch einer? 0 - 9 sind's nicht? Ist „-“ auch einer? Wenn ich das jetzt in einen Editor eingebe und ausdrucke: Was habe ich jetzt geschrieben/gedruckt? Reguläre Ausdrücke oder schlicht Zeichen?
Bitte habt noch ein bisschen Geduld. Akzeptiert es, dass ihr nicht sofort alles versteht. Dies ist ein mehrteiliger Kurs, in dessen *Verlauf* ihr die Dinge verstehen werdet ... nicht schon alles im ersten Motivationskapitel.

(Wenn es euch insgesamt zu langsam ist, dann kann ich auch schneller vorgehen. Allerdings werdet ihr schon bald merken, wie der Berghang steiler wird. ;-) )


Ich faende es auch gut, wenn wir hier nicht schon gross in irgendwelche konkreten *Umsetzungen* von REs einsteigen, weil ich mir sonst das allgemeine Verstaendnis sparen kann. Direkte Umsetzungserklaerungen findet ihr auch sonstwo im Internet, dazu braucht ihr mich nicht. Ich versuche (so natuerlich verstaendlich wie moeglich) zu erklaeren was REs eigentlich sind und wie sie funktionieren. Dazu brauche ich zwei Einheiten mit Grundlagen. Die erste, zum Grund warum wir ueberhaupt etwas haben wollen, was mehr als nur eine Stringsuche ist, ist dieser Thread hier. Am Wochenende kommt die zweite Grundlageneinheit. Anschliessend werden wir uns erste Anwendungen von REs anschauen. Spaetestens dann wird es konkreter und anschaulicher.

Die zweite Einheit wird aber der Teil sein, der den Unterschied zu den meisten anderen Tutorials macht. Darin koennt ihr REs wirklich verstehen ... wenn ihr euch darauf einlasst und offen dafuer seid.
Use ed once in a while!

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

Re: RegExp-Kurs 01: Motivation

Beitrag von thoerb » 05.04.2022 17:38:22

Meillo hat geschrieben: ↑ zum Beitrag ↑
03.04.2022 19:14:44
1) Welche Suchprobleme hattest du schon, die du entweder nicht loesen konntest oder fuer die du viel Handarbeit investieren musstest?
Ich hatte mal eine Excel-Datei in der standen über fünfzig zwölfstellige Teilenummern aus Zahlen und Buchstaben gemischt. Und diese Teilenummern musste ich mit Teilnummern in verschiedenen Texten abgleichen. Also eine gewisse Menge der Teilnummern kam in den Texten vor und manchmal gab es in den Texten auch Teilnummern die nicht in der Excel-Tabelle vorkamen. Ich musste herausfinden welche.

Hätte ich diese Aufgabe händisch lösen müssen, so wie es gedacht war, wäre ich durchgedreht. :facepalm:

Da ich auf diesem Windows-Notebook keine Rechte hatte, Software zu installieren, habe ich mit HTML zwei Textformulare erstellt. In das eine habe ich die Teilenummern aus der Excel-Tabelle kopiert und in das andere den Text. Und dann habe ich das Ganze per Knopfdruck im Webbrowser mit JavaScript und RegExp abgleichen lassen. :wink:

Und so habe ich diese Sisyphusarbeit dann dank RegExp spielend leicht bewältigt. :D

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

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 05.04.2022 18:50:15

thoerb hat geschrieben: ↑ zum Beitrag ↑
05.04.2022 17:38:22
Da ich auf diesem Windows-Notebook keine Rechte hatte, Software zu installieren, habe ich mit HTML zwei Textformulare erstellt. In das eine habe ich die Teilenummern aus der Excel-Tabelle kopiert und in das andere den Text. Und dann habe ich das Ganze per Knopfdruck im Webbrowser mit JavaScript und RegExp abgleichen lassen. :wink:
Das ist eine tolle Erfolgsgeschichte (auch unabhaengig von RegExps)! Die muss ich mir unbedingt merken. :THX:

... auch eine gute Idee, den Browser mit JS zu verwenden, da man damit heutzutage auf quasi jedem System eine maechtige Scriptsprache direkt zur Verfuegung hat. Ich zumindest habe das nicht immer so auf dem Schirm.
Use ed once in a while!

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

Re: RegExp-Kurs 01: Motivation

Beitrag von TuxPeter » 05.04.2022 19:08:28

Wozu ich RE einsetzen wollen könnte?

1. Meine Fotos sind monatsweise in Verzeichnissen sortiert, und ich bemühe mich sehr um sprechende Dateinamen. Natürlich versuche ich das nach einer bestimmten Systematik - welche allerdings zuweilen geändert und vor allem erweitert werden musste, außerdem gibt es ja immer Zweifelsfälle. Gesucht wird jetzt mit find sowie * und ?, könnte mir gut vorstellen diese Suche mit RE zu verbessern.

Bei der Musik ist es ähnlich, wobei die über die CDDB automatisch getaggten ja auch keinem einheitlichen Standard folgen.

2. Ich habe einen Ordner mit Texten, die mal als Merk- und Notizzettel für bestimmte Soft- und Hardwarelösungen dienten. Mittlerweile alles wie Kraut und Rüben durcheinander. Durchsuchen nach Dateinamen, wenn das nicht fruchtet, nach Inhalten, und könnte mir gut vorstellen, dass auch hier etwas RE-Kenntnisse ganz angenehm wären.

3. Anmerkung zu dem Beispiel mit der Plausibilitätsprüfung von Eingaben: Wenn ich als Anwender eine Software vorgesetzt bekomme, kann ich da kaum etwas mit RE vorschalten, was mir das Leben angenehmer machen würde. (Wie grottenhaft beispielsweise die Eingaben von vielen großmächtigen Portalen sind - denke da z.B. an die Finanzamt-Elster oder auch die Bahn - aber das nur mal OT)

Falls ich noch jemals so ein Anwenderzeug programmieren sollte - wie bekomme ich dann die RE's in meine Programmiersprache rein?? Gut, für die bash ist klar, aber sonst?

Davon abgesehen interessieren mich diese Dinge sehr, und in vielen Fällen ist es ja so, dass man erst mit bestimmten Kenntnissen die Anwendungsfälle sieht. Und ich möchte jetzt schon mal den Intitatoren herzlich für ihre Mühe danken!

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 » 05.04.2022 20:05:06

TuxPeter hat geschrieben: ↑ zum Beitrag ↑
05.04.2022 19:08:28
Wozu ich RE einsetzen wollen könnte?

1. Meine Fotos sind monatsweise in Verzeichnissen sortiert, und ich bemühe mich sehr um sprechende Dateinamen. Natürlich versuche ich das nach einer bestimmten Systematik - welche allerdings zuweilen geändert und vor allem erweitert werden musste, außerdem gibt es ja immer Zweifelsfälle. Gesucht wird jetzt mit find sowie * und ?, könnte mir gut vorstellen diese Suche mit RE zu verbessern.

Bei der Musik ist es ähnlich, wobei die über die CDDB automatisch getaggten ja auch keinem einheitlichen Standard folgen.

2. Ich habe einen Ordner mit Texten, die mal als Merk- und Notizzettel für bestimmte Soft- und Hardwarelösungen dienten. Mittlerweile alles wie Kraut und Rüben durcheinander. Durchsuchen nach Dateinamen, wenn das nicht fruchtet, nach Inhalten, und könnte mir gut vorstellen, dass auch hier etwas RE-Kenntnisse ganz angenehm wären.
Diese Probleme scheinen mir wie für reguläre Ausdrücke gemacht; besonders die Texte, und hier besonders dann, wenn es ASSCII/Unicode/… also „reiner Text“ ist — dann wäre meine Empfehlung „grep“ auf der Kommandozeile.
TuxPeter hat geschrieben: ↑ zum Beitrag ↑
05.04.2022 19:08:28
3. Anmerkung zu dem Beispiel mit der Plausibilitätsprüfung von Eingaben: Wenn ich als Anwender eine Software vorgesetzt bekomme, kann ich da kaum etwas mit RE vorschalten, was mir das Leben angenehmer machen würde. (Wie grottenhaft beispielsweise die Eingaben von vielen großmächtigen Portalen sind - denke da z.B. an die Finanzamt-Elster oder auch die Bahn - aber das nur mal OT)
Das hatte ich eher so verstanden, als daß das ein typischer Einsatzzweck für Programmierer solcher Anwendungen wäre.
TuxPeter hat geschrieben: ↑ zum Beitrag ↑
05.04.2022 19:08:28
Falls ich noch jemals so ein Anwenderzeug programmieren sollte - wie bekomme ich dann die RE's in meine Programmiersprache rein?? Gut, für die bash ist klar, aber sonst?
Die meisten Sprachen und Bibliotheksfunktionssammlungen (fast alle „ernstzunehmenden“) haben vorgefertigte Funktionen dafür. Bei den Beispielen, die ich genannt hatte, waren 2 Java-Programme (das Fernsehzeugs), da ist eine sehr mächtige Variante im Sprachumfang: java.util.regex. Die zeichnet sich neben dem Standardumfang durch zahlreiche vordefinierte Zeichenklassen aus, so zum Beispiel \p{Space} für ein Leerzeichen beliebiger Art, das paßt also auf ein Zeichen aus der Menge der „leeren Zwischenräume“, also einfache Leerzeichen, nicht Zeilen-umbrechbare, Tabulatoren, schmale Zwischenräume,…; will man beliebigen Leerraum im Druckbild zulassen, macht man einen Stern dahinter — dann ist egal, ob jemand „Deppenleerzeichen“ benutzt hat oder aus Versehen 2 davon getippt. [P.S. ansonsten mag ich Java nicht besonders…]
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 » 05.04.2022 20:35:16

Meillo hat geschrieben: ↑ zum Beitrag ↑
05.04.2022 17:10:02
(Wenn es euch insgesamt zu langsam ist, dann kann ich auch schneller vorgehen. Allerdings werdet ihr schon bald merken, wie der Berghang steiler wird. ;-) )
Es sollten hier nicht die Leute der Maßstab sein, die bereits von regulären Ausdrücken überzeugt sind: die wurschteln sich auch ohne Deinen Kurs durch. Der größte Mehrwert durch den Aufwand entsteht, wenn möglichst niemand „abgehängt“ wird und es ist im Zweifel besser, sich langweilende Fortgeschrittene abzuhängen; denn die wissen sich dann auch anders zu helfen. Wenn Du einen möglichst großen Summen-Lern- und Multiplikatoren-Effekt anstrebst, dann sollten hier die langsamsten das Tempo bestimmen und das sind die, welche von regulären Ausdrücken noch nichts wissen.
Christoph

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von inne » 06.04.2022 01:48:15

Stehen Reguläre Ausdrücke eigentlich für sich alleine, oder fallen die in eine Kategorie wie Programmiersprache, Auszeichnungsprache usw.

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

Re: Interessensabfrage: Wer will RegExps lernen?

Beitrag von Meillo » 06.04.2022 08:28:02

inne hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 01:48:15
Stehen Reguläre Ausdrücke eigentlich für sich alleine, oder fallen die in eine Kategorie wie Programmiersprache, Auszeichnungsprache usw.
REs sind keine Programmiersprache. Sie zeichnen auch keinen Text aus indem sie ihn mit Zusatzinformation anreichern.

Sondern Regulaere Ausdruecke beschreiben einen Menge an Text. Sie sind eine Beschreibung von einer Art von Text, auf den aller moeglicher konkreter Text passt. D.h. ein regulaerer Ausdruck kann alle Schreibweisen des Namens Maier beschreiben. Alle diese verschiedenen Schreibweisen passen/matchen dann auf diesen Regulaeren Ausdruck. Oder ein Regulaerer Ausdruck kann alle Zahlen oder ein bestimmtes Datumsformat oder das Format einer URL beschreiben. Alle konkreten Vorkommen von Zahlen/Datums/URLs passen dann auf diesen Regulaeren Ausdruck.

REs sind also eine kompakte Beschreibung fuer eine ganze Menge konkreter Ausformungen einer bestimmten Art von Information, wie beispielsweise einer Zahl, eines Datums, einer URL, der Namensvarianten von Maier, usw.
Use ed once in a while!

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

Re: RegExp-Kurs 01: Motivation

Beitrag von fischig » 06.04.2022 09:26:17

Meillo hat geschrieben:REs sind keine Programmiersprache.
Vermutung, Überlegung: Aber sie gelten jeweils nur innerhalb eines bestimmten Regelsatzes, sprich: einer Programmiersprache?

Beispiel: Alles bei dem ich mich „programmiererisch“ (TRex möge verzeihen) eine wenig auskenne, ist DOS-Pascal
Würdest du den Ausdruck „in [0..9]“ als regulären Ausdruck bezeichnen? (Als ich vor vielen Jahren damit anfing, habe ich mir dafür den Begriff „reservierte Wörter“ gemerkt.)
Weiter spekuliert: wenn das zutrifft, dann sähe der in einem LInux-Shell-Script zumindest etwas anders aus?
Noch weiter spekuliert: Dann machte es keinen Sinn von DEN REs zu sprechen sondern nur von REs in Pascal, C, java, bash etc.? Es mag durchaus Übereinstimmungen geben, das Zeichen * mag ein solcher RE als Platzhalter in vielen/allen bekannten Programmiersprachen sein, zwingend/notwendig ist es das aber nicht.

Ich betone nochmals: Alles Spekulation! In all meinen Internet-Recherchen bezüglich des Begriffs „regulärer Ausdruck“ habe ich keine explizite Verifizierung oder Falsifizierung meiner Überlegungen gefunden.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 06.04.2022 09:49:22

Du hast ganz recht, dass es nicht *die* REs gibt, sondern REs genau genommen eine Klasse von Sprachen sind, naemlich den Regulaeren Sprachen (Typ 3 nach Chomsky). Man kann sich viele Regulaere Sprachen ausdenken. Es kann auch viele Arten von Regulaeren Ausdruckssprachen geben und gibt sie auch. Einfaches Globbing (also mit * in der Shell) ist ebenso eine Regulaere Sprache und damit ein Regulaerer Ausdruck wie das was grep/sed/awk/Perl kann.

(Programmiersprachen sind eine maechtigere Art von Sprachen (naemlich Typ 0 nach Chomsky) als Regulaere Sprachen. Mit ihnen kann man Probleme loesen, die man mit Regulaeren Sprachen nicht loesen kann. Wenn man so will ist eine Stringsuche von ihrer Maechtigkeit noch eine Stufe unter Regulaeren Ausdruecken ... oder man koennte auch sagen, eine Stringsuche ist eine Regulaere Sprache, die nur Verkettung als einzigen Operator kennt. Aber hier sind wir nun voll in der Theorie angekommen. Dazu kann eggy dann spaeter mehr sagen.)

Konkret: In dem Kontext hier verwende ich den Begriff ``Regulaere Ausdruecke/Regular Expressions'', wie in der Informatikwelt ueblich, stellvertretend fuer die Art von Regulaeren Ausdruecken, die aus grep/sed/awk/Perl bekannt sind. Man koennte sie auch auf Thompson basierende REs nennen.

In diesen Grundlageneinheiten betrachte ich REs unabhaengig von konkreten Umsetzungen in einzelnen Programmiersprachen und Programmen. Ich betrachte das was ihnen allen gemeinsam ist ... das was also den Kern von Regulaeren Ausdruecken ausmacht. Wie sie konkret in verschiedenen Programmiersprachen und Programmen umgesetzt sind und worin dabei die Unterschiede liegen, dazu kommen wir spaeter. Wir muessen zuerst die Gemeinsamkeiten und die Grundstruktur ueberhaupt greifen und erkennen koennen, bevor wir Unterschiede betrachten koennen.

Ich hoffe, das macht die Situation fuer dich klarer und nicht verwirrender. ;-)
Use ed once in a while!

Benutzeravatar
frox
Beiträge: 969
Registriert: 06.08.2004 16:29:44
Wohnort: Köln

Re: RegExp-Kurs 01: Motivation

Beitrag von frox » 06.04.2022 14:45:56

Es handelt sich also um eine Art Definitionsnorm für Abfragen und Abfragegruppen?
"Stühle und Tische sind Möbel, wir suchen Sitzmöbel.
Damit jeder weiß, was gemeint ist:
So sehen die aus und haben folgenden Suchnamen für alle: Regstuhl."?
Gruß, Fred

Die Zeit salzt alle Wunden

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

Re: RegExp-Kurs 01: Motivation

Beitrag von eggy » 06.04.2022 14:51:38

Meillo hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 09:49:22
Du hast ganz recht, dass es nicht *die* REs gibt, sondern REs genau genommen eine Klasse von Sprachen sind, naemlich den Regulaeren Sprachen (Typ 3 nach Chomsky).
(Wem das zu weit vom Thema ist: einfach ignorieren, das Folgende ist für die Praxis nicht wichtig)

Auch wenn das jetzt extrem weit in die Theorie führt...
Typ 3 äquivalent sind nur die "echten RE". Vieles was in den Spracherweiterungen enthalten ist, klappt nicht ohne look-a-head oder Zähler. Und sowas gibt's so bei einfachen endlichen Automaten noch nicht.

Außerdem würde ich nen RE nicht als Sprache bezeichnen. Ein RE ist eher ein Hilfsmittel, ein Bauteil eines Entscheidungsalgorithmus der entscheiden kann, ob eine Eingabe (die Zeichenfolge, die wir mit dem RE prüfen) zu einer Sprache gehört.

Du hast zum Beispiel die "Sprache der Telefonnummern", das wären alle "Wörter" (erlaubte Aneinanderreihungen von Zeichen) die eine Telefonnr. darstellen: Zahlen, mit ner gewissen Mindestlänge, mit Vorwahlen und ohne, mit Nebenstellen und ohne, etc.
Dann hast Du die "Sprache a", das könnten dann alle "Wörter" sein, die nur aus a's bestehen, beliebiger Länge. (a,aa,aaa,aaaaaaaa,....)
Oder die "Sprache zweier a", dass sind dann alle "Wörter" die aus paaren von a's bestehen. (aa,aaaa,aaaa... aber nicht a, und nicht aaa usw.)
Oder eine "Sprache gleichmäßig mit a", bei denen für jeden anderen Buchstaben auch ein a im Wort enthalten ist.
Oder die "Sprache aller Primzahlen", das wären dann nur "Wörter", die auch Primzahlen sind.
(Natürlich könnte man hier auch die "Sprache der Regulären Ausdrücke" erfinden, das wären dann alle Aneinanderreihungen von Zeichen, die man als regulären Ausdruck nutzen kann. Nur "Wirksamkeit" hat diese Sprache halt nicht.)

Für manche(!) Sprachen kannst Du einen einfachen endlichen Automaten bauen, der entscheiden kann, ob das Wort zu dieser Sprache gehört. Wenn Du für eine Sprache so einen erkennenden Automaten konstruieren kannst, dann ist diese Sprache Teil der sogenannten "Regulären Sprachen".

Bei anderen Sprachen ist die Frage "gehört das Wort zu der Sprache" mit einem einfachen endlichen Automaten aber nicht immer zu lösen.
Denn bei manchen Sprachen braucht es zusätzliche Hilfsmittel, die ein einfacher Automat nicht hat. Wie zum Beispiel "merke Dir ein Zeichen" oder "zähle diese Zeichen mit". Sowas leisten erst Kellerautomaten bzw. Turingmaschinen (die übrigens auch ein wunderbares Thema sind). Diese Art von Berechnungsmaschinen gibt's bei Typ 3 einfach nicht.

Die "ganz einfache Art" von RE ist äquivalent zu endlichen Automaten. Bei manchen Spracherweiterungen stimmt das aber nicht mehr. Mit anderen Worten, Du könntest für diese spezielle Art von RegEx dann keinen passenden endlichen Automaten erstellen. Und damit sind die dann nicht mehr Typ 3 konform.

Wen das Thema interessiert: gibt viele Fachbücher, "Logik für Informatiker" und "Theoretische Informatik - kurzgefasst" (U. Schöning) gehören m.E. zu den etwas lesbareren.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von Meillo » 06.04.2022 14:53:40

frox hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 14:45:56
Es handelt sich also um eine Art Definitionsnorm für Abfragen und Abfragegruppen?
"Stühle und Tische sind Möbel, wir suchen Sitzmöbel.
Damit jeder weiß, was gemeint ist:
So sehen die aus und haben folgenden Suchnamen für alle: Regstuhl."?
;-) ... so koennte man sagen.

Natuerlich auf Text bezogen. Es geht also nicht um bestimmte Arten von Moebelstuecken, sondern um bestimmte Arten von Worten bzw. Textabschnitten ... die eben den Kriterien entsprechen, die mit dem Regulaeren Ausdruck formuliert sind.


... Regstuehle! :facepalm: :mrgreen:



Edit: Was eggy auf zwei Seiten immer noch voellig unverstaendlich rumkompliziert hat, hat frox in vier Zeilen einleuchtend und fuer jeden klar ersichtlich auf den Punkt gebracht! Ich denke, frox sollte den Theorieteil uebernehmen, nicht eggy. :-P :mrgreen:


Edit2: Nichts fuer ungut, eggy. Deine Beschreibung ist natuerlich schon gut verstaendlich und hilfreich. ... bloss mit der direkten Klarheit von frox kannst du leider nicht ganz konkurrieren. ;-)
Use ed once in a while!

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

Re: RegExp-Kurs 01: Motivation

Beitrag von eggy » 06.04.2022 15:42:44

Meillo hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 14:53:40
Ich denke, frox sollte den Theorieteil uebernehmen, nicht eggy. :-P :mrgreen:
gerne :P

Benutzeravatar
frox
Beiträge: 969
Registriert: 06.08.2004 16:29:44
Wohnort: Köln

Re: RegExp-Kurs 01: Motivation

Beitrag von frox » 06.04.2022 15:56:43

Oh, Danke für die Blumen. :lol:
Ich werde sicher öfter stark vereinfacht nachfragen. Ich bin ja (friedhofs)blond. *g*
Vielleicht mache ich dann ganz am Schluss eine Zusammenfassung für mich selbst und poste die dann ggf..
Gruß, Fred

Die Zeit salzt alle Wunden

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

Re: RegExp-Kurs 01: Motivation

Beitrag von fischig » 06.04.2022 19:04:35

Ist Chomsky der Chomsky?

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: RegExp-Kurs 01: Motivation

Beitrag von JTH » 06.04.2022 19:11:18

fischig hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 19:04:35
Ist Chomsky der Chomsky?
Japp.
Manchmal bekannt als Just (another) Terminal Hacker.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von eggy » 06.04.2022 19:11:51

Ja, die Sprachklassen kommen aus Richtung der Linguistik.

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

Re: RegExp-Kurs 01: Motivation

Beitrag von fischig » 06.04.2022 19:24:06

Lang lang ist's her: Seine Generative Transformationsgrammatik war in der Sprachwissenschaft der Renner um 1970. :wink:

rhHeini
Beiträge: 2702
Registriert: 20.04.2006 20:44:10

Re: RegExp-Kurs 01: Motivation

Beitrag von rhHeini » 06.04.2022 21:55:00

Ich bin zuletzt bei einigen Skripten zur Umbenennung von Media-Dateien mit RegEx in Berührung gekommen. Verstehe nur Bahnhof, stehe voll auf Kriegsfuss mit diesem Thema. Und das obwohl ich meine ersten Programmiererfahrungen Mitte der 70er gemacht habe (Algol und Fortran auf Lochkarten an einer TR440). Bin aber kein Programmierer, muss mich aber viel mit SW und Debuggen zur HW-Steuerung auseinandersetzen.

Bei den Skripten habe ich mir hier und in weiteren Foren helfen lassen, ich staune immer nur über die Lösungen der Experten.

Und moderne Tools die ich bei der Arbeit verwende haben auch Anflüge von RegEx für Suchen/Ersetzen, z.B. Notepad++.

Werde mitlöessen und schauen ob ich jetzt noch was Lernen kann.

Rolf

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: RegExp-Kurs 01: Motivation

Beitrag von inne » 07.04.2022 09:16:25

Meillo hat geschrieben: ↑ zum Beitrag ↑
06.04.2022 09:49:22
Es kann auch viele Arten von Regulaeren Ausdruckssprachen geben und gibt sie auch. Einfaches Globbing (also mit * in der Shell) ist ebenso eine Regulaere Sprache und damit ein Regulaerer Ausdruck.
Eine hast du schon genannt (Einfaches Globbing). Welche gibt es noch, die erwähnenswert sind?
Ich kenne zu dem Thema nur die Beispiele die hier ab und an im Forum erarbeitet werden und den Wikipedia Artikel (der alles schön als Referenz zusammenfasst): https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck (Ohne weiterführede Links).
Eine Liste welche Reguläeren Ausdruckssprachen es gibt, scheint die deutsche Wikipedia nicht zu haben? Sind das nur die Erweiterungen der REs wie du sie Anfangs genannt hast?

PS: Programmiersprachelement

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 » 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.
Christoph

rhHeini
Beiträge: 2702
Registriert: 20.04.2006 20:44:10

Re: RegExp-Kurs 01: Motivation

Beitrag von rhHeini » 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.

Antworten