Lavender: Ersetzregel s///g funktioniert nicht...

Hallo zusammen,

entschuldigung für diesen Titel, aber ein anderer ist mir dazu nicht eingefallen, der es passender ausgedrückt hätte ;)

Also nun zu meinem Problem. Ich möchte ähnlich dem BBCode in meinem Forum die Links mit dem Format:

http://www.url.com/Linktext[/link]

In einen Link mit der Aufschrift "Linktext" umwandeln. Dazu dieser "Befehl":

$kleintext =~ s/(<)([A-Za-z0-9.-=&%/?;#_>+)([]])([A-Za-z0-9.-=&%/?;#_]+)([/link]])/...hier dann der link usw.../g;

Aber es führt zu gar keinem Resultat.

Ich habe auch schon diverse andere Möglichkeiten ausprobiert z.B. nach allen Zeichen zu suchen anstatt A-Z, a-z, 0-9 und die Linkkonformen Zeichen, aber auch das bringt nichts.

Was ist an diesem Codesnip falsch?

Vielen Dank im Voraus.

Gruß
Lavender

  1. 你好 Lavender,

    $kleintext =~ s/(<)([A-Za-z0-9.-=&%/?;#_>+)([]])([A-Za-z0-9.-=&%/?;#_]+)([/link]])/...hier dann der link usw.../g;

    Aber es führt zu gar keinem Resultat.

    kein Wunder: http:// wird dadurch schon nicht mehr erfasst. Besser so:

    $kleintext =~ s/<([^\s]|+)>(.*?)[/link|/<a href="$1">$2</a>/g

    sollte man noch ein wenig genauer beschreiben, aber im wesentlichen sollte es das sein.

    再见,
     克里斯蒂安

    --
    Interessante Kommunikation | Modifiziertes Code-Folding mit TextMate
    Sich erinnern bedeutet, aus einer Erfahrung nicht ausreichend gelernt zu haben.
    http://wwwtech.de/
    1. Hi,

      Danke für die schnelle Antwort.
      Ich habe es nun eingefügt und es führt zu einem 500er - auch nachdem ich es versucht habe zu modifizieren (irgendwie gefallen mir die | darin nicht so wirklich) komme ich zu keinem Ergebnis.

      Könntest du dir dein Scriptsnip vielleicht nochmal anschauen? Vielen Dank.

      Viele Grüße
      Lavender

      1. Ich nochmal ;)

        also, ich hab es nun doch hinbekommen:

        $kleintext =~ s/<([^\s]>+)](.*?)[/link]/<a href="$1">$2</a>/g;

        Unter anderem das ; am Ende hatte ich vergessen *hust*

        Vielen Dank nochmal für deine Hilfe.

        Viele Grüße
        Lavender

    2. gudn tach!

      $kleintext =~ s/<([^\s]|+)>(.*?)[/link|/<a href="$1">$2</a>/g

      sollte man noch ein wenig genauer beschreiben, aber im wesentlichen sollte es das sein.

      huch, ich vermute, dass das ueberhaupt nicht funktioniert. was machen die pipes da? und dann diese seltsame klammersetzung... versteh ich so nedd. copy&paste-fehler?

      /<([^\s]|+)>(.*?)[/link|/<a href="$1">$2</a>/g
                     ^  ^             ^                 ^

      ich versuche mal zu reparieren.
      s/<([^\s]>+)](.*?)[/link]/<a href="$1">$2</a>/g

      prost
      seth

      1. Hi,

        auch dir nochmal vielen Dank für die Mühe :)

        Viele Grüße
        Lavender

      2. 你好 seth,

        huch, ich vermute, dass das ueberhaupt nicht funktioniert. was machen die pipes da?

        Huch - da hat mich die Notebook-Tastatur wieder zum Narren gehalten ;) Sorry.

        ich versuche mal zu reparieren.
        s/<([^\s]>+)](.*?)[/link]/<a href="$1">$2</a>/g

        Die Backslashes für die schließenden eckigen Klammern sind nicht notwendig:

        s/<(^\s]>+)[/link]/<a href="$1">$2</a>/g

        再见,
         克里斯蒂安

        1. gudn tach!

          Huch - da hat mich die Notebook-Tastatur wieder zum Narren gehalten ;)

          ach soo. ok, dass es am keyboard-layout (us, de, ...) liegen koennte, habe ich auch kurz vermutet, jedoch wieder verworfen, aber auf _das_ keyboard-layout bin ich nicht gekommen.

          Die Backslashes für die schließenden eckigen Klammern sind nicht notwendig

          ahh, wie geil! das stimmt und ist vernuenftig. bleibt die frage, wo das im manual steht: wo steht das im manual?

          prost
          seth

          1. 你好 seth,

            Die Backslashes für die schließenden eckigen Klammern sind nicht notwendig

            ahh, wie geil! das stimmt und ist vernuenftig. bleibt die frage, wo das im manual steht: wo steht das im manual?

            Weiss nicht, ob das da drin steht. Im Manual steht ja nicht: „folgende Zeichen müssen escaped werden”, sondern da steht, dass man mit \ die Sonderbedeutung von Meta Characters ausschalten kann. Und da ] in diesem Fall keine Sonderbedeutung hat… das gleiche gilt ja auch für - am Anfang oder Ende einer Zeichenklasse: [-abc], [abc-], [-abc-] oder sogar [--] – in allen Fällen ist das Zeichen kein Meta-Zeichen, sondern ein Literal.

            再见,
             克里斯蒂安

            --
            Interessante Kommunikation | Modifiziertes Code-Folding mit TextMate
            Es gibt keinen Ort, wo der Geist zu finden waere. Er ist wie die Fussspuren der Voegel am Himmel.
            http://wwwtech.de/