Ersetzregel s///g funktioniert nicht...
Lavender
- perl
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
你好 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.
再见,
克里斯蒂安
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
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
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
Hi,
auch dir nochmal vielen Dank für die Mühe :)
Viele Grüße
Lavender
你好 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
再见,
克里斯蒂安
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
你好 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.
再见,
克里斯蒂安