Xwab
Форумыnavigate_nextПрограммирование на PHP

Регулярки
Сообщения
Spar

Дайте ссылки на статьи в которых очень подробно описываются регулярные вырожения?

11 Июн 2010, 18:00
Akdmeh

http://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

11 Июн 2010, 18:31
Akdmeh

Перенёс в php - тут меньше шансов потеряться, потом занесу в полезные темы.

11 Июн 2010, 18:31
Fuelen

Есчо http://docs.php.net/manual/ru/regexp.reference.php

11 Июн 2010, 19:27
Spar

Спасибо товарищи!)

11 Июн 2010, 21:06
wapmorgan

<?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}
уже замучался я с это регуляркой  , прошу помощи

03 Авг 2010, 18:34
Mediator21

Morgan, попробуй четвертым параметром поставить PREG_SET_ORDER

03 Авг 2010, 18:44
wapmorgan

помогло, спасибо.
регулярка может составлена не совсем точно?

03 Авг 2010, 19:00
wapmorgan

а нет,
$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}

        )

03 Авг 2010, 19:39
Mediator21

Morgan, а ты зачем столько круглых скобок наставил? Они как переменные считаются и результат заносится в массив. Как я понимаю ты шаблонизатор пишеш?

03 Авг 2010, 19:42
Ответить на тему