|
|
|
|
|
для: warlocke13
(27.01.2012 в 10:47)
| | Чет не пойму в чем проблема. Почему 2 дня нет ответа.....
<pre><?php
$html = <<<HTML
<div id="id1">
<p> TEXT </p>
<div id="image">. тут еще куча вложенных тегов и есть тег <p>Текст</p>..</div>
<p> <strong> TEXT </strong> </p>
<p> </p>
<p> TEXT </p>
<p>TEXT </p>
<p>TEXT </p>
.... может быть разное количество тегов <p> </p>
<p> </p>
</div>
HTML;
$pattern = "#<p>(.*?)</p>#s";
preg_match_all($pattern,$html,$out);
print_r($out);
?></pre>
| результат:
Array
(
[0] => Array
(
[0] => <p> TEXT </p>
[1] => <p>Текст</p>
[2] => <p> <strong> TEXT </strong> </p>
[3] => <p> </p>
[4] => <p> TEXT </p>
[5] => <p>TEXT </p>
[6] => <p>TEXT </p>
[7] => <p> </p>
[8] => <p> </p>
)
[1] => Array
(
[0] => TEXT
[1] => Текст
[2] => <strong> TEXT </strong>
[3] =>
[4] => TEXT
[5] => TEXT
[6] => TEXT
[7] =>
[8] =>
)
)
| Или нужно что-то другое??? | |
|
|
|
|
|
|
|
для: warlocke13
(27.01.2012 в 10:47)
| | Скорее всего нельзя написать регулярку если не знаешь сколько тегов <p>. нужно использовать средства языка, например на ruby это может быть сделано так:
#!/usr/bin/env ruby
#coding:utf-8
text1 = <<-EOF
<div id="id1">
<p> TEXT </p>
<div id="image">. тут еще куча вложенных тегов и есть тег <p>Текст</p>..</div>
<p> <strong> TEXT </strong> </p>
<p> </p>
<p> TEXT </p>
<p>TEXT </p>
<p>TEXT </p>
.... может быть разное количество тегов <p> </p>
<p> </p>
</div>
EOF
pattern_html = /<p>(.*)<\/p>/
res=""
text1.gsub(pattern_html) do
|str|
res+=str[3..-5]# прибавить без <p> в начале и <\p> в конце
end
puts res
|
| |
|
|
|
|
|
|
| Всем привет. Вот попал в засаду:
есть следующая разметка страницы:
<div id="id1">
<p> TEXT </p>
<div id="image">. тут еще куча вложенных тегов и есть тег <p>Текст</p>..</div>
<p> <strong> TEXT </strong> </p>
<p> </p>
<p> TEXT </p>
<p>TEXT </p>
<p>TEXT </p>
.... может быть разное количество тегов <p> </p>
<p> </p>
</div>
|
Вот надо составить регулярку которую брала бы текст, вот я пытался что-то такое сделать:
<div id=\"id1\">\\s*+<p>(.*)
| - так берет текст только первого тега <p>- точнее весь текст в тегах <p></p> до тега <div>, если я пишу так:
<div id=\"image\">*.*</div>\\s*+<p>(.*)
| - так берет весь текст в тегах <p></p> после тега <div id="image">, но вот засада, если я напишу так:
<div id=\"id1\">\\s*+<p>(.*)</p>\\s*+<div id=\"image\">*.*</div>\\s*+<p>(.*)
| - то я вообще ничего не получаю :(.
Буду благодарен за любую помощь. Спасибо. | |
|
|
|
|