ошибка regexp

jewel.ua

Новичок
ошибка regexp

нужно со строки вида
PHP:
<div><a href="">...</a> <a href="">..</a></div>
вытянуть то что находится в div
моя регулярка такая
PHP:
$pattern = "/<div>(\s?[^(<\/div>)]*\s?)<\/div>/";
но она ненаходит ничего
пробовал разные вариации с отрицанием без скобок и т.д., но положительно результата это не принесло
идеи?
 

freeek

Новичок
ровно, для того примера который ты привел
PHP:
   $f = '<div><a href="">...</a> <a href="">..</a></div>';
  echo '<pre>';
  preg_match('%<div>(\s*<a\s+href[^>]*>.*</a>\s*)+<\/div>%i',$f,$sd);
  print_r($sd);
-~{}~ 02.08.09 02:24:

в довесок

идея написания регулярок заключаетсяв том, что
то что ты видишь, или предполагаешь увидеть, обэтом и пишешь

в своей регулярке, ты хочешьзахватить полностью кусок, от и до, НО
если ты будешьпарсить большой кусок кода, то не забывай о жадности,
даже если твой код прокатит, то он съесть все от первого открывающего тега до последнего закрывающего в документе

в любом случае, даже если код который ты привел, коректен в плане синтаксиса, он не коректен в плане подхода
 

The employer

Новичок
"/(?<=<div>).*(?=<\/div>)/"

Пробелы после div - косяк форума, в паттерне они не нужны.
 
Сверху