witam.
String jest zmienna javascript pobraną z pliku i wygląda następująco:
Kod
var var0 = [ "11296710","na","21,010,200,000","20101121","20100415","20100209","X","rozne dane","na","koty","12:40 am","00:00","2910416169","Nov. 21, 2010","4.2","kol","4.2700","4.2200","251698248","0.0320","d","4.2500","4.2600","4.3000","4.2600","3.1100","5.0700","Feb. 9, 2010","Apr. 15, 2010","na","na","2.56","-0.02","-172.03","0.00","0","0.744 %","4.2","4.3000","20101119","6712","20101119","4.2600","4.2700","4.2200","0.0000","dane firmowe","na","na" ];


Kod php:
  1. <?php
  2. $s = file_get_contents("./var.txt");
  3. $s = trim($s);
  4. $s = explode("\n",$s);
  5.  
  6. $patt = "/^var var([0-9]){1,2} = \[ "; // Begin of pattern
  7. for($i=0; $i<=47; $i++){ $patt .= "\"(.*?)\","; } // Repeat pattern
  8. $patt .= "\"(.*?)\" \]\;$/"; // The end of pattern
  9.  
  10. echo $patt;
  11. # 1 . Nie Dziala
  12. preg_match_All("/^var var([0-9]){1,2} = \[ (\"(.*?)\",){48}\"(.*?)\" \]\;$/ ", $s[0], $matches);
  13. # 2 . Dziala
  14. preg_match_all($patt, $s[0], $matches1);
  15.  
  16. echo "<pre>";
  17. print_r($matches);
  18. print_r($matches1);
  19. echo "</pre>";
  20. show_source(__FILE__);
  21. ?>


Pierwszy preg_match_all zwraca mi TRUE ale 'wypluwa' tylko

Kod
Array
(
    [0] => Array
        (
            [0] => var var0 = [ ...... ];
        )

    [1] => Array
        (
            [0] => 0
        )

    [2] => Array
        (
            [0] => "na",
        )

    [3] => Array
        (
            [0] => na
        )

    [4] => Array
        (
            [0] => na
        )

)

Natomiast drugi preg_match_All działa bez zarzutu - wypluwa mi dane znajduje sie w "(.*?)"
Gdzie znajduje się błąd w pierwszym wyrażeniu regularnym?

dzieki