Regex mit Variable

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Regex mit Variable

    Hi,

    ich bin momentan dabei mit Konfigurationsdateien zu arbeiten. Die sehen z.B. so aus:

    Quellcode

    1. @TITLE
    2. Page Title Goes Here
    3. @META
    4. tags=foo,bar
    5. @CONTENT
    6. Section for Content

    Jetzt möchte ich den Text in die Bestandteile zerlegen, um damit weiterarbeiten zu können.
    Die Tags zu finden ist auch nicht das Problem:

    PHP-Quellcode

    1. preg_split("/@[A-Z]+/", $file
    Allerdings bräuchte ich jetzt eine Möglichkeit das [A-Z]+, also das tatsächlich gematchte Pattern zu bekommen. Gibts sowas?
  • Danke, der Tipp war Gold wert. Habs zwar schon damit probiert, habe allerdings nicht bemerkt, dass sich ein Fehler eingeschlichen hat.
    So funktionierts, auch wenns noch nicht ganz schön ist:

    PHP-Quellcode

    1. $content = preg_split("/(@[A-Z]+)/", $file, null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
    2. $count = count($content);
    3. for ($i = 0; $i < $count; $i += 2) {
    4. $key = strtolower(str_replace('@', '', $content[$i]));
    5. $new[$key] = trim($content[$i+1]);
    6. }
    7. print_r($new);
    8. /*
    9. erzeugt:
    10. Array
    11. (
    12. [title] => Page Title Goes Here
    13. [meta] => tags=foo,bar
    14. [content] => Section for Content
    15. )
    16. */
    Alles anzeigen