Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: не могу распарсть текст
Форумы портала PHP.SU » PHP » Регулярные выражения » не могу распарсть текст

Страниц (1): [1]
 

1. john2013 - 10 Октября, 2007 - 11:05:19 - перейти к сообщению
204-Й КВ.• (Гренадерский). Уч. под ИЖС 10 сот., 330 тыс. руб. тт. 40-55-35, 35-79-01.204-Й КВ.•

(Гренадерский). Уч. под ИЖС 10 сот., 350 тыс. руб. тт. 21-52-13, 35-79-01.204-Й КВ.• (Гренадерский). Уч.

под ИЖС 10 сот., фундамент, цокольный эт., готовность 8%, 750 тыс. руб. т. 44-41-99.204-Й КВ.•

(Гренадерский). Уч. под ИЖС 8 сот., 350 тыс. руб. тт. 23-22-80, 35-27-66, 8-918-771-26-49.204-Й КВ.•

(Кавказский тракт). Уч. под ИЖС 10 сот., 350 тыс. руб. тт. 23-22-80, 42-69-70, 8-918-771-26-49.204-Й КВ.•

(Просторная). Уч. под ИЖС 10 сот., 750 тыс. руб. т. 42-47-59.204-Й КВ.• (Просторная). Уч. под ИЖС 10 сот.,

коммуникации рядом, 800 тыс. руб. тт. 21-84-51, 23-42-31.204-Й КВ.• (Просторная). Уч. под ИЖС 9 сот., все

коммуникации, фундамент, 13х12, 750 тыс. руб., торг. т. 21-15-17.204-Й КВ.• (Просторная, 33). Уч. под ИЖС

6 сот., 900 тыс. руб., торг, срочно. т. 8-918-750-43-57.204-Й КВ.• (Рубежный). Уч. под ИЖС 10 сот., центр.

канализ., все коммуник., аренда до 2010 г., 1,35 млн руб. тт. 23-62-56, 35-42-65.
\n\n(Добавление)
не могу разбить на предложения в массив, заканчивается, на цифру с точкой\n\n(Добавление)
номер телефона и .
3. john2013 - 10 Октября, 2007 - 11:46:43 - перейти к сообщению
$string="204-Й КВ.• (Гренадерский). ...... т.д";
$strings = preg_split('/[0-9-]+[.]/', $string);
но он вырезает, вместе с телефоном, а мне нужно чтобы после точки и точку вырезать
не могу подобрать шаблон
4. evgenijj - 10 Октября, 2007 - 11:53:55 - перейти к сообщению
john2013 пишет:
$string="204-Й КВ.• (Гренадерский). ...... т.д";
$strings = preg_split('/[0-9-]+[.]/', $string);
но он вырезает, вместе с телефоном, а мне нужно чтобы после точки и точку вырезать
не могу подобрать шаблон


Да, не подумал об этом. Тогда preg_match_all()
5. john2013 - 10 Октября, 2007 - 11:57:11 - перейти к сообщению
Help, не могу сам, нужна помощь
6. evgenijj - 10 Октября, 2007 - 12:00:22 - перейти к сообщению
john2013 пишет:
Help, не могу сам, нужна помощь

PHP:
скопировать код в буфер обмена
  1.  
  2. $text = '204-Й КВ.• (Гренадерский). Уч. под ИЖС 10 сот., 330 тыс. руб. тт. 40-55-35, 35-79-01.204-Й КВ.•
  3. (Гренадерский). Уч. под ИЖС 10 сот., 350 тыс. руб. тт. 21-52-13, 35-79-01.204-Й КВ.• (Гренадерский). Уч.
  4. под ИЖС 10 сот., фундамент, цокольный эт., готовность 8%, 750 тыс. руб. т. 44-41-99.204-Й КВ.•
  5. (Гренадерский). Уч. под ИЖС 8 сот., 350 тыс. руб. тт. 23-22-80, 35-27-66, 8-918-771-26-49.204-Й КВ.•
  6. (Кавказский тракт). Уч. под ИЖС 10 сот., 350 тыс. руб. тт. 23-22-80, 42-69-70, 8-918-771-26-49.204-Й КВ.•
  7. (Просторная). Уч. под ИЖС 10 сот., 750 тыс. руб. т. 42-47-59.204-Й КВ.• (Просторная). Уч. под ИЖС 10 сот.,
  8. коммуникации рядом, 800 тыс. руб. тт. 21-84-51, 23-42-31.204-Й КВ.• (Просторная). Уч. под ИЖС 9 сот., все
  9. коммуникации, фундамент, 13х12, 750 тыс. руб., торг. т. 21-15-17.204-Й КВ.• (Просторная, 33). Уч. под ИЖС
  10. 6 сот., 900 тыс. руб., торг, срочно. т. 8-918-750-43-57.204-Й КВ.• (Рубежный). Уч. под ИЖС 10 сот., центр.
  11. канализ., все коммуник., аренда до 2010 г., 1,35 млн руб. тт. 23-62-56, 35-42-65.';
  12. $pattern = "#.+\\d{2,3}-\\d{2}-\\d{2}\\.#";
  13. preg_match_all( $pattern, $text, $matches );
  14. foreach( $matches[0] as $value ) echo $value."<br/>";
  15.  
7. john2013 - 10 Октября, 2007 - 12:01:51 - перейти к сообщению
спасибо большое, век не забуду\n\n(Добавление)
в таком виде работает, а если текст идет целой строкой то нет, КАК БЫЛО ТАК И ОСТАЛОСЬ
8. evgenijj - 10 Октября, 2007 - 12:17:57 - перейти к сообщению
john2013 пишет:
спасибо большое, век не забуду

(Добавление)
в таком виде работает, а если текст идет целой строкой то нет, КАК БЫЛО ТАК И ОСТАЛОСЬ

Да, не учел жадность квантора и возможное наличие символов перевода строки
PHP:
скопировать код в буфер обмена
  1.  
  2. $pattern = "#.+?\\d{2,3}-\\d{2}-\\d{2}\\.#s";
  3.  
9. john2013 - 10 Октября, 2007 - 12:29:55 - перейти к сообщению
а у тебя нет аськи
10. evgenijj - 10 Октября, 2007 - 12:30:56 - перейти к сообщению
john2013 пишет:
а у тебя нет аськи

Какая наблюдательность! Улыбка
11. john2013 - 10 Октября, 2007 - 12:36:12 - перейти к сообщению
плохо Огорчение
12. evgenijj - 10 Октября, 2007 - 12:41:41 - перейти к сообщению
john2013 пишет:
плохо Огорчение


Хочешь что-нибудь спросить -- спрашивай на форуме. Он для того и создан. А аськой я не пользуюсь, потому что отвлекает.
13. john2013 - 10 Октября, 2007 - 12:46:43 - перейти к сообщению
private function getRecords($content) {
$position = strpos($content, '>>');

if($position !== false)
$this->iterationNumber++;

preg_match('/(?<=&nbsp;</td></tr>)[Ss]*(?=<tr><td colspan=2>)/', $content, $matches);
$replacedArray = preg_replace('/<td width=20>d*</td>/', '', $matches);
$string = strip_tags(trim($replacedArray[0]));
$strings = explode(';', $string);
array_pop($strings);
return $this->parseArray($strings);
}

было вот так, все предложения заканчивслись, на ;
потом поменяли на .
не могу в массив занести по предложениям
14. evgenijj - 10 Октября, 2007 - 13:14:16 - перейти к сообщению
Ну так тебе нужно заменить строку

на
PHP:
скопировать код в буфер обмена
  1.  
  2. $pattern = "#.+?\\d{2,3}-\\d{2}-\\d{2}\\.#s";
  3. preg_match_all( $pattern, $string, $tmp );
  4. $strings = $tmp[0]
  5.  
15. john2013 - 10 Октября, 2007 - 13:27:13 - перейти к сообщению
Респект, заработало Радость\n\n(Добавление)
СПАСИБО!!!!!!!!!

 

Powered by ExBB FM 1.0 RC1