tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
340
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ddhb ddhb ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    52
    Hallo!

    Also folgendes Problem: Ich habe einen String
    PHP-Code:
    $string '{$var == "test} $variable {$var2 =="test2"} $variable2 
    Jetzt will ich das alle Variablen, bis auf jene die innerhalb der Klammern sind durch folgendes Konstrukt ersetzt werden:
    PHP-Code:
    <?php echo $variable1ODER2 ?>
    Nur habe ich keine Ahnung wie ich das lösen könnte das der reguläre Ausdruck die Variablen innerhalb der geschweiften Klammern ignoeriert.
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Hallo,

    ein Vorschlag:
    PHP-Code:
    <?php

    $string 
    preg_replace('/
        (
          (?:^|})       # Anfang des Strings oder schließende Klammer
          [^{\$]*       # weder öffnende Klammer noch Anfang einer Variable
        )
        (\$[a-z_]\w*)   # Variablenbezeichner
    /ix'
    '$1<?php echo $2 ?>'$string);

    ?>
    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    ddhb ddhb ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    52
    Danke, allerdings funktioniert das nicht so ganz wie ich will...

    Wenn der String jetzt folgendermaßen aussieht
    PHP-Code:
    $string '{if $type == 0}<br />$var'
    Dann funktioniert das alles leider nicht mehr...
     

  4. #4
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Hallo,

    folgendes Skript:
    PHP-Code:
    <?php

    $string 
    '{if $type == 0}<br />$var';

    $string preg_replace('/
        (
          (?:^|})       # Anfang des Strings oder schließende Klammer
          [^{\$]*       # weder öffnende Klammer noch Anfang einer Variable
        )
        (\$[a-z_]\w*)   # Variablenbezeichner
    /ix'
    '$1<?php echo $2 ?>'$string);

    echo 
    $string;

    ?>
    …erzeugt bei mir folgende Ausgabe:
    Code :
    1
    
    {if $type == 0}<br /><?php echo $var ?>
    Wenn das nicht das gewünschte Ergebnis ist, dann hab ich wohl was falsch verstanden.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

Ähnliche Themen

  1. Regulärer Ausdruck
    Von Nord-Süd-Richtung im Forum PHP
    Antworten: 2
    Letzter Beitrag: 11.12.08, 21:27
  2. regulärer ausdruck
    Von anyany im Forum PHP
    Antworten: 8
    Letzter Beitrag: 30.11.07, 13:53
  3. Regulärer Ausdruck
    Von flashray im Forum XML Technologien
    Antworten: 3
    Letzter Beitrag: 09.11.07, 12:53
  4. Regulärer Ausdruck
    Von Benzol im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 28.01.05, 11:58
  5. Regulärer Ausdruck
    Von tittli im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.01.05, 15:52