На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
Страницы: (4) 1 2 [3] 4  все  ( Перейти к последнему сообщению )  
    > Регулярку бы.. :) , выкусить лишний перевод строки
      Это позволит обрабатывать ситуацию, когда после равенства нет ни одного символа. Вариант же с .+? предполагает, что после знака равенства будет не менее одного символа.
        Цитата SiMM, 18.11.04, 15:50
        Это позволит обрабатывать ситуацию, когда после равенства нет ни одного символа.

        и? Если там не будет, то он будет считать что знака "ровно" нет вообще?
          Цитата Song, 18.11.04, 18:02
          Если там не будет, то он будет считать что знака "ровно" нет вообще?

          Нет, просто regexp не пройдет.
            Дык я так и не понял.
            Что лучше
            Цитата SiMM, 18.11.04, 13:31
            .*?

            или
            Цитата Mastilior, 18.11.04, 13:31
            [^\]]*?

            ?
              Лучше то, что работает всегда ;) У любой задачи может быть множество решений - определить лучшее из них может быть ещё более сложной задачей, чем найти само решение :) Плюс ко всему - на вкус и цвет... ;)
                Цитата Mastilior, 18.11.04, 16:19
                Нет, просто regexp не пройдет.

                пишу регулярку с .*?:
                ExpandedWrap disabled
                  preg_replace( "#\[img\s*=\s*(.*?)\s*\](.*?)\[\/img\]#ie"

                и тег типа [имг=] проходит
                  Собственно, я того и добивался, чтобы он проходил, но с пустым $1. А чего добиваетесь вы - мне не известно - вы же всех возможных ситуаций и необходимого в них поведения не указали.
                  Кстати, вариант с .+? вообще не будет обрабатывать строчку или же будет глючить, например, в следующем случае:
                  ExpandedWrap disabled
                    echo preg_replace( "#\[img\s*=\s*(.+?)\s*\](.*?)\[\/img\]#ie","'alt=$1\turl=$2\n'",'[img=]url1[/img][img]url2[/img]');
                  Сообщение отредактировано: SiMM -
                    Цитата Song, 18.11.04, 23:15
                    и тег типа [имг=] проходит

                    Проходит, потому что везде стоит * (есть или нет). Если бы стоял +, то не проходил бы...
                      понял, пасиб.

                      Добавлено
                      Цитата SiMM, 18.11.04, 21:52
                      Собственно, я того и добивался, чтобы он проходил, но с пустым $1. А чего добиваетесь вы - мне не известно - вы же всех возможных ситуаций и необходимого в них поведения не указали.

                      Просто я ещё в 20-ом сообщении этот вариант сам сделал. Поэтому и подумал, что мы окончательно к чему-то другому пришли, короче запутался.
                        Это опять я :)
                        Два вопроса:
                        1) наша устаканившаяся регулярка
                        ExpandedWrap disabled
                          preg_replace("#(\[code(?:\=[a-z]+)?\])[\n\r]*(.*?)\s*(\[/code\])#si",


                        не работает с тегом коде=СиШарп:
                        [СODE=C#]
                        test
                        [/СODE] =
                        ExpandedWrap disabled
                           
                          test


                        2) Не получается отследить 3 числа после quote:
                        [ quote=name, время, id ] quote [ /quote ]
                        Пробую так:
                        ExpandedWrap disabled
                          preg_replace( "#\[quote=([^\]]+?),([^\]]+?),([^\]]+?)\]#ie", "func('имя', 'время', 'id',

                        почему-то время и id объединяются в один 3-ий параметр.
                          1)
                          ExpandedWrap disabled
                             preg_repladece("#(\[code(?:[^\]]+)?\])[\n\r]*(.*?)\s*(\[/code\])#si",

                          2)
                          ExpandedWrap disabled
                            preg_replace("#\[quote=([^,]+),([^,]+),([^\]]+)\]#ie",
                            1) спасибо большое, работает
                            2) без изменений, всё также в 3-ем параметре вырезается и время и id: "время, номер"
                              2) Не воспроизводится.
                              ExpandedWrap disabled
                                $str = '<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>name,время,id</span><div class='quote '>quote</div></div>';
                                echo preg_replace("#\[quote\=([^\]]+?),([^\]]+?),([^\]]+?)\]#ieU", "'$1_$2_$3'",$str);
                                Цитата SiMM, 26.11.04, 22:12, 524858
                                2) Не воспроизводится.

                                Это что значит? :)
                                Это что не работает вариант Микса или это мне относится, не понял? :)

                                Добавлено
                                SiMM, получилось вот чего:
                                Цитата
                                name_время_idquote[ /quote ]


                                Добавлено
                                Понял! У меня запятых 4 штуки получается.
                                Короче мне надо чтобы
                                [q=Song, 26.11.04, 22:13, 524860]то что не работает вариа[/q]
                                красная была $1
                                синяя была $2
                                зелёная была $3
                                  Song, не воспроизводится - значит, что описанная вами проблема не воспроизводится у меня (скрипт я привёл). Подобная фраза - повод задуматься и дать реальный рабочий пример (входные условия), результат его работы и ожидаемый результат работы.
                                  PS: ну так и добавьте дополнительный фактор в регулярник, чтобы он "захватывал" последний параметр в $3, либо же "хватал" в $2 запятую.
                                  Сообщение отредактировано: SiMM -
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (4) 1 2 [3] 4  все


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0432 ]   [ 15 queries used ]   [ Generated: 4.05.24, 17:22 GMT ]