Thread Perl 5.8: Regex für das Ersetzen bestimmter URL (4 answers)
Opened by GwenDragon at 2010-11-09 16:56

GwenDragon
 2010-11-09 18:31
#142596 #142596
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
Das Base-href-Element kann in dem Fall nicht verwendet werden, sonst wäre es ja wunderbar einfach. ;)

Deine Lösung ist mit kleinen Änderungen möglich, dein Regex war zu gierig und die Funktion berücksichtigt nicht wenn schon ein / am Anfang steht. Wieso ich nicht an einen Perlcode im Regex gedacht habe. *doh*

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my $regex_img = qr{<img([^>]+)?src="([^"]+)?"([^>]+)?>};
$body =~ s#$regex_img#img_parse($1, $2, $3)#igme;

my $regex_excl = qr{^(https?|ftp):\/\/};

sub img_parse {
   my $a = shift;
   my $img_url = shift;
   my $b = shift;

   if($img_url =~ m/$regex_excl/) {
      return '<img'.$a.'src="'.$img_url.'"' . $b . '>';
   } else {
      $img_url =~ s/^\///; 
      return '<img'.$a.'src="'.$path.'/'.$img_url.'"' . $b . '>';
   }
}

//EDIT: Code geändert wg. falschem Copy&Paste /Zwischenablage spinnt.

Danke.
Last edited: 2010-11-09 18:46:11 +0100 (CET)

View full thread Perl 5.8: Regex für das Ersetzen bestimmter URL