Fritz: regex und #

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

--
ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
http://webdesign.weisshart.de/
  1. 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

    1. 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

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/