Lukx: Suchen und Ersetzen mit Klammern

Hallo,
ich habe zum Thema Suchen und Ersetzen (reguläre Ausdrücke) einen Teil nicht verstanden:
Wie kann ich folgende Aufgabe bewaltigen:
Suche global nach

[img="<VARIABLE1>" bs="<VARIABLE2>"]

und ersetze mit

<img src="fotos/<VARIABLE1>.jpg" alt="Bild"><br><i><VARIABLE2></i><br>

Geht das folgendermassen?

$string =~ s/[img="(^<.+?>)" bs="(^<.+?>)"]/<img src="fotos/$1.jpg" alt="Bild"><br><i>$2</i><br>/gi;

Vielen Dank
Lukx

  1. Sup!

    Könnte klappen. Und?

    Gruesse,

    Bio

    --
    Keep your friends close, but your enemies closer!
  2. [img="<VARIABLE1>" bs="<VARIABLE2>"]
    ...
    $string =~ s/[img="(^<.+?>)" bs="(^<.+?>)"]/<img src="fotos/$1.jpg" alt="Bild"><br><i>$2</i><br>/gi;

    Handelt es sich um eine Routine zum Umsetzen von »BB-Codes« nach HTML? Dann würde ich das einfache Leerzeichen (vor »bs=«) im RegEx noch durch »\s+« ersetzen.

    --
    Und da wundern wir uns, dass die Mehrheit deutscher Abiturienten Heraklit für
    einen Dämmstoff hält.
    (Frank Lüdecke)
  3. Hallo,
    habs mal einfach so versucht, und n bisschen rumgebastelt. Folgende Zeile ist dabei herausgekommen (Für Forumsucher, die es interessiert):
    $bleintrag =~ s/[img="(.+?)" bs="(.+?)"]/<br><img src="fotos/$1.jpg" alt="Bild"><br><small><i>$2</i><br></small>/gi;

    Vielen Dank für die Hilfen.
    Lukx

    1. Hi,

      $bleintrag =~ s/[img="(.+?)" bs="(.+?)"]/<br><img src="fotos/$1.jpg" alt="Bild"><br><small><i>$2</i><br></small>/gi;

      Tippt zur besseren Lesbarkeit: Verwende anstelle der "/" im "Befehl" (jaja, ich weiss) selbst was anderes, dann brauchst du sie innen nicht maskieren:

        
      $bleintrag =~ s!\[img="(.+?)" bs="(.+?)"\]!<br><img src="fotos/$1\.jpg" alt="Bild"><br><small><i>$2</i><br></small>!gi;  
      
      

      HTH

      Margin-Auto