Дайте ссылки на статьи в которых очень подробно описываются регулярные вырожения?
11 Июн 2010, 18:00http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2
http://habrahabr.ru/blogs/regex/ небольшой блог на хабрахабре - можно почитать некоторые.
http://www.pcre.ru/docs/php/ официальная документация по pcre(шаблоны preg_) в php
Перенёс в php - тут меньше шансов потеряться, потом занесу в полезные темы.
11 Июн 2010, 18:31 <?php
$content = '{if $a}
{if $b}
{/if}
{/if}';
preg_match_all('~\{if (\!)?(\~)?\$((.*)(\.(.*))?)( (.*) ([0-9]+|\$((.*)(\.(.*))?)))?\}(?:\r\n|\n)?(.*)(?:\r\n|\n)?\{\/if\}~uUs', $content, $ifs);
print_r($ifs);
?>
выдает одно найденное значение с содержимым ($ifs[0][0])
{if $a}
{if $b}
{/if}
хотя должно быть два найденных значения, типа
$ifs[0][0] =>
{if $b}
{/if}
$ifs[1][0] => {if $a}
{/if}
уже замучался я с это регуляркой , прошу помощи
а нет,
$content = '{if $a}
{if $b}
{/if}
{/if}';
preg_match_all('~\{if (\!)?(\~)?\$((.*)(\.(.*))?)( (.*) ([0-9]+|\$((.*)(\.(.*))?)))?\}(?:\r\n|\n)?(.*)(?:\r\n|\n)?\{\/if\}~uUs', $content, $ifs, PREG_SET_ORDER);
print_r($ifs);
===>>>
Array
(
[0] => Array
(
[0] => {if $a}
{if $b}
{/if}
[1] =>
[2] =>
[3] => a
[4] => a
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
[10] =>
[11] =>
[12] =>
[13] =>
[14] =>
{if $b}
)
Morgan, а ты зачем столько круглых скобок наставил? Они как переменные считаются и результат заносится в массив. Как я понимаю ты шаблонизатор пишеш?
03 Авг 2010, 19:42