1. Есть опять проблемы, хотя вроде бы все правильно пишешь, а результата нет, например:
$res=preg_match_all(\'/TBODY/s\'... выводит все TBODY ,а:
$res=preg_match_all(\'/$res=preg_match_all(\'/
2. Теперь о моем прайсе:
Итак строка прайса:
  
    20.02 05:30
 
 | Товар1 Товар2
 
 | 35 
 | onclick="return m(this)">26.92 id=r3_3143svsfd onclick="return m(this)">27.05
 
 | 270.5 
 | 
таких строк очень много
Пишу:
$res=preg_match_all(\'/(?:)([\\D]+?)(?: | )/s\',$order,$found); Выводит все Товар1
 Товар2 изо всех строк. Теперь вырезаем еще
 | 35: $res=preg_match_all(\'/(?:
 | )([\\D]+?)(?: | )([\\d]*?)(?:<\\/B> | Ведь вроде правильно написал. 
 | onclick="return m(this)">26.92 id=r3_3143svsfd onclick="return m(this)">27.05
 Вот то что я написал для віделеного фрагмента, но оно не работает для поиска 26.92 и 27.05:
 /(?:
 | $)([0-9\\.]*?)(?:<\\/A> например)$([0-9\\.]*?)(?:<\\/A>)/s
 как правильно писать?
 3. И последний вопрос:
 Допустим вырезал я все строки, получилось у меня строка например:
 20.02
 05:30  Товар1
 Товар2  35  26.92  27.05  270.5
 Теперь это все надо вбить ее в базу данных соответственно с 6 полями, тоесть как имея такую строку получить доступ к выделенным подстрокам.
			
			
			
				Abram
 проще буде договориться с теми, кто прайс генерирует. Пусть они его генерируют либо в более чистом ХТМЛ либо вообще в каком-тодргом формате (CSV например)
			
			
			
				По другому никак, ребята помогите времени уже почти нет!!!!!!!
			
			
			
				Abram
 никто здесь не будет разбираться с таким кривым ХТМЛ. Почему он не валидный ? Почему теги не закрываются ? (
 | 
 Abram:но оно не работает для поиска 26.92 и 27.05:
 /\\d\\d\\.\\d\\d(?=<\\/A>)/s
			
			
			
				опять форум лишний пробел вставил :(
			
			
			
				Ну хорошо будем разбираться, а что за прикол с этим, какой здесь принцип действия регов?
 
 $res=preg_match_all(\'/TBODY/s\'... выводит все TBODY ,а:Abram$res=preg_match_all(\'/$res=preg_match_all(\'/
 В первом и третьем случае ты указываешь конкретные слова для поиска, пусть это TBODY и <. Во втором я бы минимизировал числитель, т.е. поставил не s а sU. Попробуй. Хотя если ты код привел правильно все должно искаться соответственно.
			
			
			
				Abram
 мама моя родная... ты хоть пытался разобраться в этом сам?
 Ответ на вопрос №1:
 что функция preg_match_all возвращает?
 
 
 $string = "
 
 
 ";
 20.02 05:30
 
 | Товар2 
 | 35 
 | onclick=\\"return m(this)\\">26.92 id=r3_3143svsfd onclick=\\"return m(this)\\">27.05
 
 | 270.5 
 |  preg_match_all("/print_r($matches);
 ?>
 скопипейсти себе в редактор, не добавляя больше не строчки и ты увидишь, что оно выводит:
 Array (
  => Array (  => Ты работаешь с тегами! и выводит в тело документа он тоже тег! следующий тег, который пойдет после того, что выведет print_r(), автоматически скажет твоему эксплореру закрыть тег , и после этого ты его увидишь только после того, как просмотришь исходный код документа.
 
 Чтобы правильно работать во время парсинга html документов надо вплотную работать при выводе результатов с функцией [p]htmlspecialchars[/p] а для этого тебе правильно надо разобрать массив, который выдаст preg_match_all на строки!!!
 
 Ответ на вопрос №2:
 Надо использовать опережающую и ретроспективную проверку, а так же использовать условие выбора!
 
 вот результирующий код:
 
 
 $string = "
 
 
 ";
 20.02 05:30
 
 | Товар2 
 | 35 
 | onclick=\\"return m(this)\\">26.92 id=r3_3143svsfd onclick=\\"return m(this)\\">27.05
 
 | 270.5 
 |  preg_match_all("/foreach($matches as $item)
 {
 foreach($item as $tbody)
 {
 echo htmlspecialchars($tbody);
 }
 }
 //конец разборок с TBODY
 
 echo "
 ";
 //начало разборок с парсингом Html
 preg_match_all("/(?<=>\\)(\\\\d*\\\\.\\\\d*)(?=<\\\\/A>|<\\\\/B>\\)/", $string, $matches);
 print_r($matches);
 ?>
 
 ответ на вопрос №3 ты получишь, когда будет понятно, какие данные куда должны пойти из сформированной тобой строки.
 
 Макс и другие
 чтобы форум не ставил пробел перед скобкой, надо перед ней поставить обратный слеш. Вот так выглядит реально строка, которую я пишу, чтобы получить то, что вы видите в коде выше:
 preg_match_all("/(?<=>\\)(\\\\d*\\\\.\\\\d*)(?=<\\\\/A>|<\\\\/B>\\)/", $string, $matches);
 тоже самое надо ставить обратный слеш перед обратным слешем, чтобы он его не кушал
 |