parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Смейтесь. Это приказ! ;-)

Luzhnikovskiy 06.01.2004 15:00 / 06.01.2004 15:05

Пусть в $text нужный текст, а в $pNum - номер искомого параграфа.

Тогда:
# счетчик в ноль
$pCntr(0)
# готовим текст:
# выкидываем <br>, <br/>, <br />
$tmp[^text.match[<br[^^>]*>][gi]{^#0A}]
# выкидываем <p></p>
$tmp[^tmp.match[<p[^^>]*>(.*?)</p>][gi]{^#0A$match.1^#0A}]
# понеслась...
^try{
# с модификатором m берем каждую непустую строку и считаем
# (а зачем нам пустые строки? это явно не параграфы)
# как насчитали нужное - сохраняем и отваливаем
	$tmp[^tmp.match[^^(.+)^$][gmi]{^pCntr.inc(1)^if($pCntr == $pNum){$found[$match.1]^throw[pFound;found]}}]
}{
# не забываем, что отвалили по exception
	$exception.handled(1)
}

# как и просили, параграф номер $pNum в переменной $found
Para No. $pNum is:
<p bgcolor="#eeeeee">
	$found
</p>