🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.perl
Article #2

Re: Regular Expression

#2
From: Patrick Schaaf
Date: Wed, 29 Jul 1992 08:57
46 lines
2528 bytes
Sepp@ppcger.ppc.sub.org (Josef Wolf) writes:
>In <bof.711635297@midget.saar.de> bof@midget.saar.de (Patrick Schaaf) writes:
>] elmar@knipp.en.open.de (Elmar Knipp) writes:
>] >Wie kann ich folgende RE mit _einer_ Anweisung catchen:
>] >     .*AFFE.*
>] >     .*AFFEAFFEAFFEAFFEAFFE.*
>] >     ...
>] >In lex ist das kein Problem:
>] >     .*(AFFE)+.*
>] Genau so vielleicht?
>] while (<>) {
>]   if (/(AFFE)+/) {
>BTW: /(AFFE)+/ ist was anderes als /.*(AFFE)+.*/

Korrekt. /(AFFE)+/ matcht die komplette AFFEAFFEAFFE-Kette, /.*(AFFE)+.*/
nur den letzten AFFEn. Die Frage ist, was der Mensch mit den Sachen vor
und nach den AFFEn machen moechte, wenn er die direkt darauffolgende
Zeichenkette extrahieren moechte, ist /(AFFE)+/ das korrekte Konstrukt.

>/.*AFFE.*/ sollte es doch auch tun.

Aber nur, wenn es rein um die Erkennung der Zeichenkette AFFE geht. Das
war zwar die Originalfrage, aber meine paranormalen Faehigkeiten sagen
mir, dass der Mensch das dann selbst gewusst haette (er hat immerhin
lex in's Spiel gebracht).

>Wegen dem '.*' am Ende sind doch die weiteren Zeilen ebenfalls in dieser
>expression enthalten.
Noe. Solange Du nicht mit '$'-Verankerung arbeitest, wird nur bis zum
naechsten Newline gematcht (das laesst sich aendern mit $* = 1;).

Eine Bitte an Menschen mit Fragen: Stellt die Fragen bitte praezise,
mit kurzer Beschreibung der Anwendung, das vereinfacht die Antwort ungemein.

Patrick

$h = "just another perl hacker"; $_ = "foo" . $h x 23 . "bar";
print "vorher: $1\n" if /.*(($h)+).*/;
print "nachher: $1\n" if /(($h)+)/;
# ich weiss. 3 Zeilen sind 2 zuviel... Uebe noch...

-- 
bof@midget.saar.de      /   \      I've just spent an hour in Your head.
Saarbruecken, De     .^/ -.- \      Believe me, I've been in nicer places.
Patrick Schaaf      / /       \        (kid eternity)
-                  this line intentionally blanked right                  -
Technical Details
Message-ID: <bof.712400277@midget.saar.de>
Path: arc1-ca.pugleaf.net!sparky!uunet!gossip.pyramid.com!decwrl!csus.edu!umn.edu!math.fu-berlin.de!Sirius.dfn.de!coli-gate.coli.uni-sb.de!uhf!midget.saar.de!bof
References: <1992Jul18.094409.516@knipp.en.open.de> <bof.711635297@midget.saar.de> <TkC2tG@ppcger.ppc.sub.org>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.perl
Path: arc1-ca.pugleaf.net!sparky!uunet!gossip.pyramid.com!decwrl!csus.edu!umn.edu!math.fu-berlin.de!Sirius.dfn.de!coli-gate.coli.uni-sb.de!uhf!midget.saar.de!bof
From: bof@midget.saar.de (Patrick Schaaf)
Subject: Re: Regular Expression
Organization: Yoyodyne Programming Systems,  midget headquarters, Germany
Distribution: de
Date: Wed, 29 Jul 1992 08:57:57 GMT
Message-ID: <bof.712400277@midget.saar.de>
References: <1992Jul18.094409.516@knipp.en.open.de> <bof.711635297@midget.saar.de> <TkC2tG@ppcger.ppc.sub.org>
Sender: news@midget.saar.de (John News)
Lines: 46