Variable in Regex-Pattern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variable in Regex-Pattern

    Hi @ all,

    suche eine Möglichkeit oder vielmehr die Schreibweise, wie ich Variablen in ein Suchmuster einer regular expression einbinden kann.
    z.B. um Kommentare aus source zu entfernen wie //, # oder /**/
    manche könnten Zeilenschritte enthalten, die je nach System unterschiedlich ausfallen: \r\n, \r, \n (Win, Mac, Unix)

    PHP-Code:
    preg_replace"/[ \t".$crlf."]+(\/\/)(?![ \t]*-->)[^".$crlf."]*/me""..."$contents); 
    soll z.B. //--> von der Ersetzung ausnehmen, da kein script-Kommentar,
    wobei $crlf für den 'variablen' Zeilenschritt steht.

    wie verhindere ich hier eine Zeilenschritt im pattern?

    Gruß
    inco

  • #2
    Hallo,

    kannst du nicht statt:
    [ \t".$crlf."]

    Einfach:

    \s

    benutzen?

    Wenn nicht, mach bitte mal ein Beispiel von dem was du ersetzen möchtest. Denke das geht schneller dann eine Lösung zu finden.
    Grüsse,
    Sebastian


    Profil Flex Freelancer
    Twitter twitter.com/flashhilfe
    Web Flash und Flex Community

    Kommentar


    • #3
      grundsätzlich ist \s natürlich richtig
      aber es geht um flexible patters z.B. wenn nur zeilenschritte gelöscht werden sollen

      PHP-Code:
      <?
      /*
      Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar 
      Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar 
      Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar 
      Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar 
      Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar 
      */

       quellcode quellcode
       quellcode quellcode
       quellcode quellcode
       quellcode quellcode

      ?>
      hier soll der kommentar ganz, im quellcode aber nur die zeilenschritte ersetzt werden.
      vermischt mit html müssen kommentare wie <!-- kommentar //-->
      ausgenommen werden, auch wenn // ein einzeiliger PHP-Kommentar sein könnte.


      Aber ich denke meine Frage ist klar:
      wie bringe ich php-Variablen in einem regulären Ausdruck unter und erzeuge so flexible suchmuster?

      Gruß
      inco


      Die Antwort lautet:
      "/\$crlf/"
      oder
      "/".$crlf."/"

      zumindest werden so variablen eingebunden
      enthält die var einen Zeilenschritt
      ist das ganze in php jedoch nicht ganz fehlerfrei

      danke für die Hilfe

      Gruß
      Peter
      Zuletzt geändert von inco; 21.04.2005, 20:06.

      Kommentar

      Lädt...
      X