Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 18.01.2017
Сообщений: 181
1

Регулярное выражение, чтобы убрать из текста все теги BBCODE, в том числе парные и одиночные

10.02.2022, 15:38. Показов 376. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
текст внутри парного тега желательно сохранять, но подойдёт и регулярка, которая удаляет парные теги вместе с содержимым.

пример строки, из которой надо убрать теги:
PHP
1
$string = 'текст1 [USER=4895]текст2[/USER] текст3 [DISK FILE ID=57753] текст4 ';
эти две регулярки не работают:
PHP
1
2
3
4
5
6
7
8
9
10
function remove_bbcode($string) {
    $pattern = '~\[[^]]+].*?\[[^]]+]\s?~';
    $replace = '';
    return preg_replace($pattern, $replace, $string);
}
 
function remove_bbcode(string $value) : string
{
    return preg_replace('~\[([a-z]+)[^]]*].*?\[/\1]~s', '', $value);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2022, 15:38
Ответы с готовыми решениями:

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

Регулярное выражение чтобы убрать пробел после # или №
Здравствуйте, уважаемые форумчане, помогите мне с регулярным выражением. Вот код, у меня не...

Дана строка. Заменить в ней все парные символы на одиночные
Дана строка. Заменить в ней все парные символы на одиночные. Помогите реализовать код... только...

Дана строка. Заменить в ней все парные символы на одиночные (например, аа -> а, тт -> т)
Дана строка. Заменить в ней все парные символы на одиночные (например, аа -> а, тт -> т).

1
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
10.02.2022, 16:06 2
Если принимать за теги всё, что находится между квадратными скобками, то:
PHP
1
2
3
4
5
$string = 'текст1 [USER=4895]текст2[/USER] текст3 [DISK FILE ID=57753] текст4 ';
 
$output = preg_replace('/\[[^]]+\]/', '', $string);
 
var_dump($output);
0
10.02.2022, 16:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2022, 16:06
Помогаю со студенческими работами здесь

Регулярное выражение, чтобы все знаки восклицания перенеслись в конец
Пытаюсь изучить регулярные выражения.. <script type="text/javascript"> var re =...

Регулярное выражение: из текста вырезать все слова, содержащие только буквы
Нужно из текста вырезать все слова, содержащие только буквы. Не получается вырезать из текста...

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

Регулярное выражение не удаляет теги <style>
Скажите, пожалуйста, почему регулярное выражение не чистит код: ' Удаляем теги...

Регулярное выражение (regexp), убрать www из URL
Помогите составить регулярное (regexp) выражение чтоб оно искало в тексте адреса сайтов без www ...

Регулярное выражение: убрать одинарные и двойные кавычки
Сразу извиняюсь, может повторяю тему, не нашёл то что мне нужно. Мне нужно чтобы с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru