Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] kurze Hilfe bei einem regulären Ausdruck

Einklappen

Neue Werbung 2019

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

  • [Erledigt] kurze Hilfe bei einem regulären Ausdruck

    Ich brauch mal kurz'n Denkanstoß bei meiner RegEx.

    Also ich habe eine Textdatei, die ist nach diesem Schema aufgebaut:
    Code:
    {titel}
    Hier ist dann alles voller text usw. bla bla bla...
    ;END
    
    {zweiter titel}
    Und auch hier stehen einige dinge...
    ;END
    Ich filtere jetzt die Titel mit folgender RegEx aus:
    PHP-Code:
    $news_file file_get_contents('diedatei.txt');
    preg_match_all('/(\{.+\})/i'$news_file$result); 
    Die Ergebnisse speichere ich in einem Array $title_array mit folgendem Aufbau:
    Code:
    [0] => {titel}
    [1] => {zweiter titel}
    Nun möchte ich die Texte der entsprechenden Titel filtern und habe folgenden Ansatz:
    PHP-Code:
    for($x=0$x<count($title_array); $x++) {
      
    $pattern '/(\\' str_replace('}''\\}'$title_array[$x]) . '.+\;END)/i';
      echo 
    $pattern '<br />'// Testausgabe (siehe unten) !!!
      
    preg_match($pattern$news_file$text_array[$x]);
    }


    /* Ausgabe der Testausgabe:
       /(\{titel\}.+\;END)/i
       /(\{"Was passiert im Schlaf"\}.+\;END)/i
    */ 
    Die Ausgaben machen für mein Verständnis Sinn, jedoch matcht die RegEx in der Schleife nicht.
    Das Ergebnis bleibt jedes mal leer.
    Sicher eine Kleinigkeit, die ich übersehe, oder bin ich total auf'm Holzweg?

    Danke
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

  • #2
    Warum die RegEx in der Schleife ? und nicht gleich mit einer alles holen ?
    PHP-Code:
    $text '{titel}
    Hier ist dann alles voller text usw. bla bla bla...
    ;END

    {zweiter titel}
    Und auch hier stehen einige dinge...
    ;END'
    ;
    preg_match_all('~\{(.*)\}(.*);END~Usi',$text,$matches,PREG_SET_ORDER);
    echo 
    '<pre>';
    print_r($matches); 
    AFFE ist nur im Dezimalsystem ein Palindrom.

    Kommentar


    • #3
      Warum die RegEx in der Schleife ? und nicht gleich mit einer alles holen ?
      Hoffentlich hast Du Dir keinen Splitter geholt, als Du mir das Brett vom Kopp gerissen hast...
      Klar, damit krieg ich ja alles in einem Rutsch...
      Vielen Dank!
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar

      Lädt...
      X