phpbar.de logo

Mailinglisten-Archive

[php] RegEx gesucht

[php] RegEx gesucht

Andreas Braukmann braukmann_(at)_tse-online.de
Mon, 30 Oct 2000 08:52:47 +0100


Hi,

On Mon, Oct 30, 2000 at 06:46:49AM +0100, Sebastian Bergmann wrote:
>   da sich noch keiner erbarmt hat und mir von meinem Amazon.de Wunschzettel
> das RegEx Buch geschenkt hat, muss ich nochmal was fragen.
... sehr zu empfehlen.

>   Es geht um folgendes: Ich möchte in einem String alle Strings der Form
> 
>     href="http://XXX"
Fuer die Erkennung der Links hast Du aber schon einen
passenden regulaeren Ausdruck, oder?

>   durch folgendes ersetzen
> 
>     href="exit_bouncer.php?target=XXX",
> 
>   wobei das XXX natürlich aus dem aktuellen, ursprünglichen Match kommen
> soll.
Dann brauchst Du prinzipiell nur dafuer sorgen, dass die Komponenten
der URL, die Du wiederverwenden willst, als 'Sub-Expressions'
gematched werden. Die Unterausdruecke werden (anhand der oeffnenden
Klammer) von links nach rechts durchgezaehlt, und sind innerhalb
des'Replacement-Patterns' als '\1' '\2' erreichbar.

Zwei Anwendungen (die ziemlich dicht an Deiner Frage liegen)
finden sich in der FAQ.

http://www.koehntopp.de/php/faq-6.html#ss6.8
http://www.koehntopp.de/php/faq-6.html#ss6.9


Folgende Stolperfallen koennen Dir begegnen:
    * die Backslashes muessen innerhalb von PHP-Strings
      natuerlich maskiert werden, also z.B.: 
        $replPatter = "\\1blubb\\2";

    * Du musst wissen, ob (ueberhaupt) und wann Du
      'greedy' oder 'non-greedy' matchen willst.

    * Was ist, wenn irgendwo zwischen "<a " und "</a" 
      ein Zeilenumbruch liegt.


-Andreas
      


-- 
: Anti-Spam Petition:     http://www.politik-digital.de/spam/          :
: PGP-Key:                http://www.tse-online.de/~ab/public-key      :
: Key fingerprint:  12 13 EF BC 22 DD F4 B6  3C 25 C9 06 DC D3 45 9B   :


php::bar PHP Wiki   -   Listenarchive