problem mit preg_replace

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

  • problem mit preg_replace

    problem mit preg_replace
    hi,

    ich hätte folgende frage:

    folgender code ersetzt mir sämtliche zeichen, außer a-z, 0-9, und . mit einem underscore. soweit krieg ichs noch hin..

    wie kann ich formulieren, dass er mir alle punkte "außer den letzten der vorkommt" bzw. alle punkte "außer das vierte zeichen von hinten" ebenfalls in _ ersetzt?

    PHP-Code:
    $str=preg_replace('%([^a-z0-9.])%siU','_',$str); 
    ich habs schon so probiert, aber das funktioniert auch nicht:

    PHP-Code:
    $str=preg_replace('%^([a-z0-9.])[.].{4}$%siU','_',$str); 
    danke im voraus, lg, ingo

  • #2
    ich glaub nicht, dass sich das mit einer regex erschlagen lässt ... allerdings
    könntest du versuchen, mit stringfunktionen den letzten punkt zu ermitteln,
    zu maskieren (wie auch immer), dann das preg_replace und zum schluss
    die maske wieder durch einen punkt ersetzen.
    Kissolino.com

    Kommentar


    • #3
      wie wärs damit:
      Code:
      =([^a-z0-9.])|\.(?!(.{3}$)=is
      (geändert)



      [edit]
      Oh, moment, sehe grade dass du meinst: "wenn es der letzt punkt ist".... Das ist schwerer, ich dachte "wenn es das letzt Zeichen und ein Punkt ist" ...

      Nagut, dann kann mein EXP nur das 4te Zeichen von hinten, falls es ein Punkt ist, unverändert lassen.

      Aber falls es dir um Dateinahmen geht, sollte es doch so reichen:

      Code:
      =([^a-z0-9.])|\.(?!(.{3}|.{4})$)is
      Natürlich gibt es auch Dateiendungen mit mehr als 4 Zeichen hinterm Punkt, aber die sind doch (besonders bei Mediendateien) eher selten.
      Zuletzt geändert von Tartax; 22.03.2004, 18:43.
      Die Musikreview Seite

      hi, i'm a signature virus. copy me into your signature to help me spread.

      Kommentar


      • #4
        super

        danke, das funktioniert.

        es geht eh nur um dateinamen mit den endungen *.ogg und *.mp3.
        ich hab da schon so viel rumgespielt, aber darauf wär ich nicht gekommen.
        vielleicht hilft mir das ja, die logik dahinter ein bisschen besser zu verstehen.

        danke, lg, op

        Kommentar

        Lädt...
        X