php – Regular Expression Schnipsel – Escaping “/”

closeDieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!

Hier ein kleines Beispiel wie man die Lesbarkeit von RegEx durch den Delimiter  “#” verbessern kann … ;)

$zeichenkette = "suckup.de Informationen / test, lall / Linux / lall123";
#$suchmuster = "/^[^\/]*\/[^\/]*\/[^\/]*\/[^\/]/";
$suchmuster = "#^[^/]*/[^/]*/[^/]*/[^/]#";
preg_match($suchmuster, $zeichenkette, $treffer);
print_r($treffer);

 

Ausgabe:

Array ( [0] => suckup.de Informationen / test, lall / Linux / )

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
  • regexperte

    Ehrlich gesagt sieht für mich beides gleich kryptsch aus…
    Kommentierte Regexp, so wie hier unter “Adding Comments” beschrieben:
    http://net.tutsplus.com/tutorials/php/advanced-regular-expression-tips-and-techniques/
    finde ich hingegen tatsächlich lesbar.

  • http://suckup.de/about voku

    # -> Start-Delimiter
    ^ -> markiert den Beginn einer Zeichenkette
    [ -> Zusammenfassung von Mustern (Anfang)
    ^ -> Negation
    / -> Forward slash (einfache String-Variable
    ] -> Zusammenfassung von Mustern (Ende)
    * -> das Vorherige Muster kann kein, ein oder mehrmals an dieser Stelle vorkommen => x{0,}

    /* break */ -> bis hierher markieren wir von Anfang des Strings, alles was kein “/” ist

    / -> Forward slash (einfache String-Variable)

    /* break */ -> nun mehren wir das erste “/” mit auf

    [ -> Zusammenfassung von Mustern (Anfang)
    ^ -> Negation
    / -> Forward slash (einfache String-Variable
    ] -> Zusammenfassung von Mustern (Ende)
    * -> das Vorherige Muster kann kein, ein oder mehrmals an dieser Stelle vorkommen => x{0,}

    /* break */ -> nun markieren wir wieder alles was kein “/” ist

    / -> Forward slash (einfache String-Variable)

    /* break */ -> nun mehren wir das zweite “/” mit auf

    [...]

    # -> Ende-Delimiter

    PS: http://weitz.de/regex-coach/ ist auch sehr hilfreich

    Mfg Voku

  • http://www.pc-gesund.de Siegfried

    Vielen Dank für die Veröffentlichung diese Informationen. Man ist ja noch am lernen. :)