regex_pascal_aufgabe_1.pas
von tegula- SNIPPET_TEXT:
-
- program regex_pascal_Aufgabe_1;
- // ---
- // Titel : Lösungsversuch zum RegEXP-Kurs im Debianforum - Pascal, Aufgabe 1 ( https://debianforum.de/forum/viewtopic.php?p=1304497#p1304497 )
- // Autor der Bearbeitung: tegula
- // Autor des Orginals: TuxPeter ( https://nopaste.debianforum.de/41756 )
- // ---
- uses Crt, RegExpr;
- Procedure ShowMatch (r : String; s : String);
- // Prozedur (mit geringfügigen Änderung) von TuxPeter übernommen: https://nopaste.debianforum.de/41756
- var
- re: TRegExpr;
- begin
- re := TRegExpr.Create(r);
- if re.Exec(s) then
- begin
- writeln(re.match[1]); // Änderung: writeln() statt Write () bzw. Zeilenumbruch statt Unterstrich
- while re.ExecNext do
- begin
- writeln(re.Match[1]); // Änderung: writeln() statt Write () bzw. Zeilenumbruch statt Unterstrich
- end;
- end;
- re.Free;
- writeln;
- end;
- begin
- // Aufgabe 1.1: "[...] den RE so ändern, dass [..] alle "l" ausgeben werden".
- writeln('=== Aufgabe 1.1 ===');
- ShowMatch('(l)','hello world! hello pascal!');
- // Arbeitsvorschlag Nr.2: "[...] den RE so ändern, dass [..] nur das 2. "hello" finden und zusammen mit den nachfolgenden 2 Zeichen ausgeben (damit man sieht, dass es tatsächlich das 2. "hello" ist)".
- writeln('=== Aufgabe 1.2: ===');
- Showmatch('hello.*(hello.{2})', 'hello world! hello pascal!')
- // Aufgabe 1.3: "Was ist der Unterschied in der Behandlung der Zeichen IN der inneren Klammer "()" und außerhalb dieser Klammer?".
- // Antwort: Nur die Zeichen innerhalb der Klammer werden extrahiert.
- end.
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN