Dimitri Rettig: Problem mit regulären Ausdrücken

Beitrag lesen

Oh, jetzt ist mir ein Fehler aufgefallen, aber erst einmal der Code (etwas verändert, auf Grund des Postings von Andreas Freund weiter unten).

#!/usr/bin/perl

while (<>)
{
  if (/<(?:[^>]* )?title *= *("?).+\1(?: .*)?>/i)
  {
    print "+++ $& +++\n";
  }
}

Das Problem ist, dass auch dieser String passt:
<img title="irgendeintitel> Ich denke, dies liegt daran, dass title *= * die Gänsefüßchen " ebenfalls einschließt.

Habe vergessen, dass die regulären Ausdrücke von Perl nicht ganz die gleichen sind wie von der bash. Selbstverständlich schließt *= * die G#nsefüßchen _nicht_ ein. Jetzt weiß ich aber auch nicht, wo der Fehler liegen könnte.

Mit freundlichen Grüßen
   Dimitri Rettig