Thomas: seperates Wort per Regulärem Ausdruck suchen!

Hi!

ich möchte mit Hilfe von einem regulärem Ausdruck nach einem seperatem Wort such (Spamschutz), also z.B. nach "porn":
gefunden werden sollte '>porn ', ' porn ' ']porn ' ..., aber nicht 'Ansporn'
Daher möchte ich nach '[?]porn[?]' suchen, wobei statt [?] eine suche nach jedem nicht alphanummerischem Zeichen sein soll, wie kann ich das machen?

Danke
Thomas

  1. Hellihello

      
    <?php  
    $subject='/porn]';  
    $pattern="/[^a-zA-Z0-9]porn[^a-zA-Z0-9]/";  
    preg_match($pattern,$subject,$matches);  
    var_dump($matches);  
    ?>  
    
    

    ??

    Gruß,

    frankx

    1. Was hat ein ^ in einem regulären Ausdruck zu bedeuten?
      Worin liegt der Unterschied zw. "=(.)=" "/(.)/" und "!(.)!"?

      Danke

      1. Hellihello

        Was hat ein ^ in einem regulären Ausdruck zu bedeuten?

        Es heißt entweder "am Anfang" im Gegensatz zu $=am Ende. Oder aber "nicht", wenn es in diesen eckigen Klammern ist.

        Worin liegt der Unterschied zw. "=(.)=" "/(.)/" und "!(.)!"?

        Der Delimiter ist frei wählbar, somit ist das oben ident, genauso wie "°(.)°" etc.pp.

        Gruß,

        frankx

  2. Hi,

    gefunden werden sollte '>porn ', ' porn ' ']porn ' ..., aber nicht 'Ansporn'
    Daher möchte ich nach '[?]porn[?]' suchen, wobei statt [?] eine suche nach jedem nicht alphanummerischem Zeichen sein soll, wie kann ich das machen?

    \W steht fuer alle Zeichen ausser A-Z, a-z, 1-9 und _ (Underscore).
    \b steht fuer Wortgrenze (wie das genau definiert ist weiss ich nicht)

    Es koennte jedoch Probleme geben, wenn das Wort Umlaute enthaelt.

    mfG,
    steckl

    1. Hi,

      \b steht fuer Wortgrenze (wie das genau definiert ist weiss ich nicht)

      Es koennte jedoch Probleme geben, wenn das Wort Umlaute enthaelt.

      nicht bei der Nutzung von Wortgrenzen: "/\bporn\b/"

      freundliche Grüße
      Ingo