regex und #
Fritz
- php
Hallo,
ich möchte per regex Wörter mit #(Nummernzeichen) am Ende suchen, und zu einem Link umwandeln (daß die Namenskonventionen für URL nicht eingehalten werden, sollte hierbei erst mal keine Rolle spielen.)
Aber das # scheint mir einen Streich zu spielen. Leider ergab weder die Forumssuche, noch googlen einen verwertbaren Hinweis.
mein regex lautet folgendermaßen:
$link = preg_replace("/(\b\w*#\b)/","<a href="$1">$1</a>", $link);
und sollte aus einem String alle Wörter, die auf # enden, zu einem Link umwandeln. Das klappt mit allen Wortendungen, aber nicht mit #. Im String "irgendwas foo# nochwas" wird foo# nicht zu einem Link umgewandelt.
Auch maskieren hilft nichts: (\b\w*#\b) wird auch nicht erkannt.
Kennt jemand das Problem? Noch besser wär natürlich eine Lösung ;-)
Gruß Fritz
Servus,
"/(\b\w*#\b)/"
"#" liegt nicht in der Chrakterklasse "\w" und die Klasse "\b"
orientiert sich an "\w" was die Menge an ausgeschlossenen Zeichen
angeht (die Abgrenzung als Wort wird - grob gesagt - von den "\b"s
durch Ausschliessung der Zeichen von "\w" realisiert); normalerweise
erkennt "\w" wiederum "a-zA-Z0-9" und die lokal begünstigten Buchstaben
und alphanumerischen Zeichen. Lange Rede, kurzer Sinn - drehe die
Reihenfolge von "\b" und "#" einfach mal um, dann sollte es eigentlich
funktionieren.
Grüsse
Hallo,
drehe die Reihenfolge von "\b" und "#" einfach mal um, dann sollte es eigentlich funktionieren.
Danke, das war es. Ich wußte, daß ich hier jemanden finde :-)
Gruß Fritz