preg_match

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

  • preg_match

    Hallo,

    ich habe eine Datei welche aus mehreren Zeilen besteht.
    Der Aufbau aller Zeilen ist jedoch gleich. Nur halt immer andere Werte.

    Eine mögliche ZeileDatum kann variieren)
    .......,06-Sep-05,...

    Jetzt möchte ich das er mir die Zeilen ausgibt wo das Datum 06-Sep-05
    ist.

    PHP-Code:
    $Date date("d-M-y",mktime(000date("m")  , date("d")-1date("Y")));
    echo 
    $Date."<br>";

    $fp fopen("...file.""r");
    while (
    $line fgets($fp1000))
    {
    if(
    preg_match("/^*[[".$Date."]]+*$/"$line))
    {
    echo 
    fgets($fp1000) . "<br />";
    }
    }
    fclose($fp); 
    Aber erschreibt mir immer folgende Fehlermeldung:
    Compilation failed: nothing to repeat at offset ?!? ka was sie bedeutet.

    der Fehler liegt an der preg_match Funktion.
    Aber auch so
    PHP-Code:
    preg_match("/^\[[".$Date."]+\]/"$line)) 
    klappt es nicht.

    Kann mir jemand bei dem Ausdruck helfen?

    Danke
    Zuletzt geändert von galaxy2; 07.09.2005, 11:11.

  • #2
    Re: preg_match

    Compilation failed: nothing to repeat at offset ?!? ka was sie bedeutet.
    du hast nen quantifier benutzt, der sich auf nichts bezieht, weil höchstwahrscheinlich vor ihm nichts steht, was man wiederholen könnte, z.b. ein ^ im sinne einer assertion. du hättest den offset mal mit angeben können ...
    Aber auch so
    [...]
    klappt es nicht.
    was heißt 'klappt nicht'?

    du brauchst auf jeden fall den punkt als metazeichen, den du wohl beliebig oft wiederholen willst. desweiteren brauchst du modifier m und eventuell U, und preg_match_all() mußt du verwenden.

    laß dir den regexp mal aisgeben, den du da generierst, man weiß ja nie ... und mach dich mal schlau ...

    http://www.php-resource.de/tutorials/read/10/1/
    http://regexp-evaluator.de/tutorial.html
    http://regexp-evaluator.de/tutorial-...to-repeat.html
    Zuletzt geändert von derHund; 07.09.2005, 12:32.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      So klappt es:



      PHP-Code:

      $Date 
      date("d-M-y",mktime(000date("m")  , date("d")-1date("Y")));
      echo 
      $Date."<br>";

      $fp "..file..";

      $filearray file($fp);
      print_r($filearray);
      $number count($filearray);
      echo 
      $number."<br>";
      $pattern "/^(.*)(".$Date.")(.*)$/ims";
      for(
      $i=0;$i<$number;$i++)
      {
      $word $filearray[$i];
      echo 
      $i;
      if(
      preg_match($pattern$word))
      {
      echo 
      "<font color=red>".$word"</font><br />";
      }
      else{
           echo 
      "<font color=green>".$word"</font><br />";
          }

      Kommentar

      Lädt...
      X