PHP: preg_match('#<from nick="(.*)" race_id="(.+)" rank=".+" cln=".+" avatar=".*"/>\r\n<to/>\r\n<text>\r\n.*\r\n</text>#',$result,$nick); print_r($nick);
Rastamanka Значит "как нибудь сами разберетесь?" (c) PHP: preg_match_all('~<from nick="([^"]+)"[\s\S]*?<text>([\s\S]+?)</text>~msi', $text, $result); var_dump($result);
Подскажите пожалуйста как можно составить регулярное выражение. Нужно удалить все теги от первого до последнего, как это можно сделать правильно. пример кода <div id="basketov"><!-- первый тег --> <table border='0' cellpadding="0" cellspacing="0" id="basket-table"> <tr> <td id="left-basket"></td> <td id="bg-basket"> <div id="itm-basket"> <span>корзина_1</span> <table class="table-basket-line" border="0"> <tr> <td><div class="basket-line-basket"></div></td> <td class="tdbasknax">корзина_2</td> </tr> </table> </div> </td> </tr> </table> </div><!-- последний тег --> сейчас делаю вот так PHP: $result = preg_replace('/<div id="basketov">.*?<\/div>.*?<\/div>.*?<\/div>/is', '', $text); правильно ли я делаю запись регулярного выражения или можно как то сократить последние 3 тега <\/div>
Я не правильно выразил мыль, написал (Нужно удалить все теги от первого до последнего) А нужно было написать (Нужно удалить все что в ну три тегов от первого до последнего) + сами теги первый (открывающийся <div id="basketov">) и последний (закрывающийся </div>)
Можно как нибудь найти закрывающий тег, а не тот тег который встретился первым. То есть есть код <div id="basketov"><!-- первый тег --> <table border='0' cellpadding="0" cellspacing="0" id="basket-table"> <tr> <td id="left-basket"></td> <td id="bg-basket"> <div id="itm-basket"> <span>корзина_1</span> <table class="table-basket-line" border="0"> <tr> <td><div class="basket-line-basket"></div></td> <td class="tdbasknax">корзина_2</td> </tr> </table> </div> </td> </tr> </table> </div><!-- последний тег --> когда я пишу PHP: $result = preg_replace('/<div id="basketov">.*?<\/div>/is', '', $text); то результат срезки такой <div id="basketov"><!-- первый тег --> <table border='0' cellpadding="0" cellspacing="0" id="basket-table"> <tr> <td id="left-basket"></td> <td id="bg-basket"> <div id="itm-basket"> <span>корзина_1</span> <table class="table-basket-line" border="0"> <tr> <td><div class="basket-line-basket"></div> по регулярному выражению происходит срезка не закрывающего тега а первого встречающегося на пути Приходится писать вот так чтобы найти закрывающийся тег PHP: $result = preg_replace('/<div id="basketov">.*?<\/div>.*?<\/div>.*?<\/div>/is', '', $text); А если будет 10- 20 закрывающий тегов придётся писать 20 раз .*?<\/div> Вопрос: как можно найти закрывающийся тег.
preg_replace('/^<div id="basketov">.*?<\/div>$/is', '', $text); поставь ^ и $ чтобы обозначить границы
Помогите написать выражение. Условия - строка должна состоять из 8-10 символов в ней должна содержаться одна или больше [a-z] в ней должна содержаться одна или больше [A-Z] в ней должна содержаться одна или больше [0-9]
К сожалению код не работает. Попробовал вот на этом коде. $content = '<div id="container"> <div id="header"> <div id="basketov"> <table border="0" cellpadding="0" cellspacing="0" id="basket-table"> <tr> <td id="left-basket"></td> <td id="bg-basket"> <div id="itm-basket"> <span>корзина_1</span> <table class="table-basket-line" border="0"> <tr> <td><div class="basket-line-basket"></div></td> <td class="tdbasknax">корзина_2</td> </tr> </table> </div> </td> </tr> </table> </div> <div> <a id="mobile_link" href="/about/?mobile=Y">Мобильная версия</a></br> </div> <div id="subtopmenu"> <div class="left-menu">'; PHP: $content = preg_replace('/^<div id="basketov">.*?<\/div>$/is', '', $content); echo $content;
SHiNiGaMi, Compton посмотрите внимательно на условие Darth Padla - требуется, чтобы в пароле встречались и большие буквы, и малые, и цифры - одновременно. Ваша регулярка не обеспечивает этого NAH в данном случае лучше написать длинную регулярку, включающую последовательно все внутренние дивы
C м тоже не работает, вообще ничего не происходит. $content = '<div id="container"> <div id="header"> <div id="basketov"><!-- первый тег вырезать от сюда --> <table border="0" cellpadding="0" cellspacing="0" id="basket-table"> <tr> <td id="left-basket"></td> <td id="bg-basket"> <div id="itm-basket"> <span>корзина_1</span> <table class="table-basket-line" border="0"> <tr> <td><div class="basket-line-basket"></div></td> <td class="tdbasknax">корзина_2</td> </tr> </table> </div> </td> </tr> </table> </div><!-- последний тег вырезать до сюда --> <div> <a id="mobile_link" href="/about/?mobile=Y">Мобильная версия</a></br> </div> <div id="subtopmenu"> <div class="left-menu">'; PHP: $content = preg_replace('/^<div id="basketov">.*?<\/div>$/ims', '', $content); echo $content;