powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Регулярка не хочет меня!
3 сообщений из 3, страница 1 из 1
Регулярка не хочет меня!
    #37898925
GethsLeader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всех приветствую!

Задолбался уже ставить эксперименты над регулярками, так как их результативность стремиться к нулю. Уже два с половиной часа бьюсь над простенькой проблемой, но она никак не хочет решаться.

Суть:
Клепаю BB-коды для своего форума (не спрашивайте почему я не взял готовый, я и так отвечу: "чтобы лучше понять как это работает, я делаю свой, с блэкджеком и шлюхами"). Почти все сделал. Все работает, однако одна регулярка просто рвет мозг и не дается. Короче. Обработка тегов
Код: sql
1.
 и 

. Принцип реализации придумал такой - все символы [ и ] между этими тегами заменить например на %{^ и ^}%, ну и потом подменить обратно. Но это не важно. Что не получается: как поймать все [ и ] между
Код: sql
1.
 и 

? То до чего я дошел своим мозгом, не слишком большого объема нужно заметить, это - "~(?<=\[code\])(\[)(?=\\])~is". Можете смеяться, так как это по всем понятным причинам не будет работать (точнее не будет делать то, чего мне очень хочется). В общем объясните механизм отлова всех таких-то символов между тем-то и тем-то, дайте ссылку на пример или сам пример. Ну или еще как-то подопните. Очень нужно. Если бы мог сам справиться, то тут бы не просил помочь.

:слезномолящийопомощисмайлик:
...
Рейтинг: 0 / 0
Регулярка не хочет меня!
    #37898930
GethsLeader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По понятным причинам теги
Код: html
1.
[code] и 

[/SRC] преобразовались в код =) Прошу прощения. Следовало воспользоваться предварительным просмотром. Простите.
...
Рейтинг: 0 / 0
Регулярка не хочет меня!
    #37900249
GethsLeader
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче все-таки запинал. Криво, вкось, но заработало. Заюзал PHP скриптоусы. В частности preg_replace_callback функцию.

Перед регулярками тегов выполнил:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    // Code preparation function
    function codePreparator($matches)
    {
      $part = $matches[0];
      $part = preg_replace("~\[~U", "<|", $part);
      $part = preg_replace("~\]~U", "|>", $part);
      $part = preg_replace("~\:~U", "|:|", $part);
      return $part;
    }
    // Codes preparation
    $text = preg_replace_callback("~\[code\](.+)\\]~isU", "codePreparator", $text);



Ну и после всех отработавших регулярок для тегов выполнил:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    // Code returner function
    function codeReturner($matches)
    {
      $part = $matches[0];
      $part = preg_replace("~\<\|code\|\>(.+)\<\|/code\|\>~isU", "<div class = \"code\">$1</div>", $part);
      $part = preg_replace("~\<\|~U", "[", $part);
      $part = preg_replace("~\|\>~U", "]", $part);
      $part = preg_replace("~\|:\|~U", ":", $part);
      return $part;
    }
    // Codes returning
    $text = preg_replace_callback("~\<\|code\|\>(.+)\<\|/code\|\>~isU", "codeReturner", $text);



У кого есть варианты получше, пожалуйста поделитесь. Ато правда как-то глаз этот код режет, хоть и работает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Регулярка не хочет меня!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]