Regexp, выборка значений из строки

Анастасия

Новичок
Regexp, выборка значений из строки

Форумчане,

помогите, пож-та, написть паттерн для выборки значений в кавычках из такой строки:

var Time_Arr = [ "2008,08,16,19,45,00","2008,08,16,22,00,00"]

Заранее спасибо!
 

Balancer

Новичок
Вопрос сформулирован недостаточно чётко. В примере уже всё выбрано. Один элемент массива - одно значение.
 

Анастасия

Новичок
Извиняюсь, и привожу разъяснения.
Нужно из приведенной строки получить массив php вида
$data = array("2008,08,16,19,45,00", "2008,08,16,22,00,00");

Если это можно сделать без RegExp буду только рада =)
 

Balancer

Новичок
Если строка гарантирована, то можно, например, так:
PHP:
$str = 'var Time_Arr = [ "2008,08,16,19,45,00","2008,08,16,22,00,00"]';
if(preg_match('/\[(.+)\]/', $str, $m))
    eval("\$result = array({$m[1]});");

print_r($result);
Если данные могут быть небезопасными, то потребуется цикл:
PHP:
$result = array();
if(preg_match('/\[(.+)\]/', $str, $m))
    foreach(explode('","', $m[1]) as $x)
        $result[] = trim($x, ' "');
Наконец, можно задействовать preg_match_all:
PHP:
if(preg_match_all('/("[^"]+")/', $str, $m)) 
    $result = array_map(create_function('$s', 'return trim($s, \' "\');'), $m[0]);
 

Анастасия

Новичок
Огромное спасибо! С учетом доп. задач, воспользовалась вторым вариантом с preg_match.
 

Glazyrin Sergey

Новичок
Если строка в таком виде, то что то мне говорит что это json Или я не прав ?
Можете воспользоваться json_decode($ваша строка, true);

-~{}~ 08.02.09 22:11:

Упс извините можно просто сделать $string = preg_replace('/.*?=/', '', $string);
и потом $array = json_decode($string, true);
 
Сверху