|
|
|
| Приветствую =) я уже задавал подобный вопрос... сейчас он немного другой... просто хочется раз и навсегда разобраться как правильно писать выражение =)
Мне нужно вырвать весь код между
<!--
SORT PAD
-->
--------- вырываемый код ---------
<table cellpadding="2" cellspacing="0" border="0" width="100%">
<tr><td>
|
Таких
<table cellpadding="2" cellspacing="0" border="0" width="100%">
<tr><td>
|
может встречаться несколько... а мне нужно только первое вхождение... пробовал как уже советовали использовать preg_match вместо preg_match_all - не помоглу... я пишу вот так...
$pat = "/SORT PAD([\s\S]{1,})<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"100%\">[\s]*<tr><td>/";
preg_match($pat,$t,$res);
$z=$res[0];
|
Просьба указать на мои недочёты =) очень хочется раз и навсегда классна это усвоить =) | |
|
|
|
|
|
|
|
для: eclipse
(10.03.2006 в 14:11)
| | Для этого можно воспользоваться регулярным выражением
<?php
$str = '<!--
SORT PAD
-->
--------- вырываемый код ---------
<table cellpadding="2" cellspacing="0" border="0" width="100%">
<tr><td>';
$pattern = "|<!--[\s]*SORT PAD[\s]*-->(.*)<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"100%\">[\s]*<tr><td>|isU";
preg_match($pattern, $str, $out);
echo $out[1];
?>
|
Здесь проблема в "жадности", т.е. по умолчанию регулярные выражения стремятся найти как можно более длинное соответствие - инвертировать "жадность", т.е. делать выражение "не жадным" можно например при помощи Perl-модификатора U. Более подробно о модификаторах можно почитать в теме http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=7298. | |
|
|
|
|
|
|
|
для: cheops
(11.03.2006 в 12:32)
| | =) огромное спасибо =) теперь всё встало на свои места и всё стало понятна =) пасиба =) | |
|
|
|