Помогите с регуляркой: PHP: <dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст</a></div></dd>
PHP: <?php $code='<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст</a></div></dd>'; preg_match_all('/<a href="\/id00900">(.*)<\/a><\/div><\/dd>/i', $code, $matches); echo "<pre>"; print_r ($matches[0][0]); echo "</pre>"; ?>
L I G A, забыл написать, что id00900 - может быть разным, и PHP: <dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;"> Является явным указателем этой ссылки, т.к. до этого есть такие ссылки...
PHP: $the_text=<<<HTML <dt>Имя:</dt><dd> <div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить _этот_текст</a></div> </dd> <dt>Имя:</dt><dd> <div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст_2</a></div> </dd> HTML; preg_match_all('#<div style="width: 140px; overflow: hidden;"><a href=.*[^>]>(.*)</a>#isU',$the_text,$match); print_r($match);
PHP: <pre> <?php $a = '<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст</a></div></dd>'; preg_match_all('|<dt>.*</dt><dd><div style=.*><a href=.*>(.*)</a></div></dd>|Ui',$a,$res); print_r($res[1]); ?> </pre>
как распарсить строку типа PHP: {"userId":"24389417527847511997","menuType":"User","fio":"Ольга Широкова ( ..."}</div></div></a></div></td></tr></table></div><div><img class="online" делаю так: PHP: preg_match_all('/{"userId":"([0-9]*)","menuType":"User","fio":"(.{0,30})"}<\/div><\/div><\/a><\/div><\/td><\/tr><\/table><\/div><div><img class="online"/', $body, $match); не находит из-за символов " ( ..." но в других случаях там вообще нет никаких символов, кроме латинских букв и пробелов
Дикс, лучше кинь пару запросов, чтобы понять что там быть может а что не может. А так: Code: {"userId":"([0-9]+)","menuType":"User","fio":"(.*?)\s\( ..."}</div></div></a></div></td></tr></table></div><div><img class="online" У меня отлично работает (python). ХЗ как там в PHP. Может нужно что-то дополнительно экранировать.
да в принципе уже разобрался, просто увеличил {0, 600} а концовка "( ..."" -- она вообще нестандартная, её не надо писать
PHP: <?php $code='{"userId":"24389417527847511997","menuType":"User","fio":"Ольга Широкова ( ..."}</div></div></a></div></td></tr></table></div><div><img class="online" )'; preg_match_all('/(?<!"userId":")(\d)+","menuType":"User","fio":"(.{0,30})(?=\( ..."}<\/div><\/div><\/a><\/div><\/td><\/tr><\/table><\/div><div><img class="online")/i', $code, $matches); echo "<pre>"; print_r ($matches[0][0]); echo "</pre>"; ?>
помогите, написал регулярку, но не правильно почему-то... вот есть текст: и мне надо что бы оно выдировало это с текста. я сделал:
да выучи ты уже реглярки PHP: <?php $text = '<a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>'; preg_match_all('/<a href="\/title\/([^"]*)"([^>]*)>([^>]*)<\/a>/', $text, $match); print_r($match); ?> Code: Array ( [0] => Array ( [0] => <a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a> ) [1] => Array ( [0] => (любое)/ ) [2] => Array ( [0] => ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ ) [3] => Array ( [0] => Тут тоже любой текст ) )
Наверно стоит конкреизировать, тут можно понять что тебе все надо /title/(любое) ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ Тут тоже любой текст И почему вы такие изврашенсы? Неужели вам не будет удобнее использовать вместо // например ## без необходимости что то слешировать?
PHP: <?php $code='<a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>'; preg_match_all('/<a href="\/(.*)\/"[^><\/](.*)>(.*)<\/a>/i', $code, $matches); echo "<pre>"; print_r ($matches); echo "</pre>"; ?>
млин, почему-то не помогло... вот текст который парсер должен выдернуть <p style="margin:0 0 0.5em 0;"><b>Media from <a href="/title/tt0412142/" onclick="(new Image()).src='/rg/find-media-title/media_strip/images/b.gif?link=/title/tt0412142/';">"House M.D."</a> (2004)</b></p> но мне нужно именно там где ссылка, а он нифига...
PHP: <?php $text=<<<HTML <p style="margin:0 0 0.5em 0;"><b>Media from <a href="/title/tt0412142/" onclick="(new Image()).src='/rg/find-media-title/media_strip/images/b.gif?link=/title/tt0412142/';">"House M.D."</a> (2004)</b></p>'; HTML; preg_match_all('#<a href="(/title/.*)"#isU',$text,$match); print_r($match);