Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Teile eines Pfades mit regulären Ausdrücken filtern (Perl)

  1. #1
    Registrierter Benutzer Avatar von Rebell
    Registriert seit
    10.07.2002
    Ort
    Dresden
    Beiträge
    62

    Teile eines Pfades mit regulären Ausdrücken filtern (Perl)

    Hallo! Ich brauch mal eure Hilfe beim Verständnis.
    Ich hab eine Variablen $pfad = "/etc/apache/httpd.conf" und ich möchte mit regulären Ausdrücken das httpd.conf entfernen. Also dachte ich mir folgendes:

    Code:
    $pfad = "/etc/apache/httpd.conf";
    $neuerpfad = $pfad;
    $neuerpfad =~ s/\/(.+)$//ig;
    Aber leider löscht er mir die ganze Zeile.
    to be famous is so nice
    http://get-mike.de
    M:ke

  2. #2
    Registrierter Benutzer Avatar von phate
    Registriert seit
    14.02.2003
    Beiträge
    149
    Hi Rebell,

    Deine verwendete regex passt auf den kompletten String und da Du kein Ersatzstring angegeben hast, ist Dein $neuerpfad dann natürlich auch leer.

    Besser als die Verwendung von regex ist in diesem Fall das Modul File::Basename, da das Ganze dann auch plattformübergreifend funktioniert.
    Code:
    use File::Basename;
    
    $pfad = "/etc/apache/httpd.conf";
    
    $datei = basename($pfad);
    $verzeichnis = dirname($pfad);
    Natürlich führen hier viele Wege nach Rom. Informationshalber noch nen paar Methoden, aber wie gesagt, nimm besser File::Basename.
    Code:
    $pfad = "/etc/apache/httpd.conf";
    
    $verzeichnis = $pfad;
    $verzeichnis =~ s#(/.+)/[a-zA-Z.0-9]+$#$1#;
    Oder auf ne ganz simple Art und Weise mit substr und rindex
    Code:
    $pfad = "/etc/apache/httpd.conf";
    
    $verzeichnis = substr($pfad,0,rindex($pfad,"/"));
    gruss,

    phate

  3. #3
    Registrierter Benutzer Avatar von Rebell
    Registriert seit
    10.07.2002
    Ort
    Dresden
    Beiträge
    62
    Es hat funktioniert, mit der Suche nach allen Nicht-/-Zeichen...
    to be famous is so nice
    http://get-mike.de
    M:ke

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •