Регулярка

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Вот:
Код:
$text = 'Какой-то текст, бла- бла-бла, а это [b]жирный цвет[/b]';
$new_text = preg_replace("#(\[b\])([a-zA-Zа-яА-Я0-9\s]+)(\[\/b\])#u","<span class=\"bold\">\${2}</span>", $text);
echo $text;
Собственно регулярка может и велосипед, но гуглить было не охото, поэтому набросал свою, она делает текст жирным цветом заменив некоторые символы.
Сам вопрос: Сейчас регулярка заменяет только текст [a-zA-Zа-яА-Я0-9\s], ну буржуйский язык, русский, цифры и пробел. Как сделать так, чтобы заменяло не только это, а вообще ВСЁ, что там есть неважно какой символ? Попробовал поставить (*) и пробовал [*], но не помогает, в первом случае вообще варнинг лезет :(
 

Volter9

defined('SURRENDER') or die(); // StarWars
Регистрация
27.05.2012
Сообщения
1 145
А так попробуй:

Код:
(\[b\])(.*)(\[\/b\])
А не легче ли просто заменить на <span class="bold">?
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
А так попробуй:

Код:
(\[b\])(.*)(\[\/b\])
А не легче ли просто заменить на <span class="bold">?
Работает. Легче, но не лучше.. Потому как пользователь может ошибиться и не написать заключающий тег, ну или возьмет и не поставит его специально. Тогда страница не пройдет валидацию.
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
Работает. Легче, но не лучше.. Потому как пользователь может ошибиться и не написать заключающий тег, ну или возьмет и не поставит его специально. Тогда страница не пройдет валидацию.
ну тут поможет только парсер по символу с построением дерева тегов и текстовых нодов, чтобы все грамотно вкладывалось
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Код:
$text = 'Какой-то текст, [b]бла-
бла-бла[/b], а
это [b]жирный цвет[/b]';
$new_text = preg_replace("~\[b\](.*)\[/b\]~uisU","<strong>$1</strong>", $text);
echo $new_text;
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
А еще можно юзайть какую-нибудь продвинутую библиотеку. Например, http://jbbcode.com/examples.
(умеет закрывать незакрытые bbcodes)
 
Статус
Закрыто для дальнейших ответов.
Верх Низ