регулярные выражения

Pasha25

Guest
регулярные выражения

Всем привет !

Есть такая проблема. Мне из строки нужно загнать все в массив, что стоит в двойных кавычках.
PHP:
$filename = "new.txt";
$fd = fopen ($filename, "r");
$str = fread ($fd, filesize ($filename));
fclose ($fd);

          
$res=preg_match_all('"[/\w/+]"',$str,$found);
echo "<br>Matches: $res<br>";
print_r($found);
здесь каждаю буквочка попадает в отдельную ячейку массива, а нада чтоб все что между кавычками туда попало.

Помогите плиз.
 

Vladimirovich

Guest
Автор оригинала: Pasha25
Проходит только часть, остальное нет
У меня все работает. Показывай что именно у тебя не так.

$_ = '
this "is a" test message "with
line brea"ks and other shit
';

preg_match_all('/"([^"]+)"/sm', $_, $m);

foreach($m[1] as $v){
echo "{$v}\n";
}
 

Lelik

Guest
Зачем так сложно???
$res=preg_match_all("/\".*?\"/",$str,$found);
 

Pasha25

Guest
строка вот такая например:
"A E S " "Kyiv" "E 49" "" 2001 02.10.01 16:52:43 "21, Moskovskaya str., #101"

код:
PHP:
$filename = "new.txt";
$fd = fopen ($filename, "r");
$str = fread ($fd, filesize ($filename));
fclose ($fd);
echo "$str<br>";
          
preg_match_all('/"([^"]+)"/sm', $str, $m);

foreach($m[1] as $v){
echo "{$v}\n";
все равно не ве записывает в массив
 

Lelik

Guest
тот регуляр что я дал все прекрасно ловит .. и даже пустые кавычки:)
 

Pasha25

Guest
да но дату которая не в кавычках не ловит
короче говоря мне нужно поймать все что отделяется кавычками
 

Lelik

Guest
Блин ПАПОЧКА вы определись чего вы хотите ... ... кароче заменяешь preg_replace-ом все кавычки которые встречаеются подряд на просто кавычки .... а затем split()
 

Pasha25

Guest
:)
Определяюсь , нужно загнать в массив все что в кавычках и не в кавычках (дата, время, циферки всякие)
но если в кавычках пусто, то нада чтоб типа в массиве тоже записалось пусто
 

Pasha25

Guest
а если в тексте встречаются простые кавычки я потом этот текст не восстановлю
 

Pasha25

Guest
тогда сначала давайте вырежим все что не в кавычках, а потом что в кавычках. На данный момент все , что в кавычках уже вытягивается.
 

HEm

Сетевой бобер
как уже было сказано выше - разбиваем explode(); в массив, нечетные элементы - в кавычках, четные - нет (или наоборот в зависимости от того с кавычек начинается вся строка или нет)
 
Сверху