Изменить подстроку в строке с помощью регулярного выражения

139
23 марта 2019, 12:50

Есть такая строка [mod]тут может быть что угодно[/mod], она находится в неком тексте ( строке ), нужно средствами php заменить выше приведенную строку на некую другую, Спасибо!

Answer 1
<?php
$tagStart = '\[mod\]';
$tagEnd = '\[\/mod\]';
// Начинаем захват с открывающего тега, 
// нежадно матчим до первого закрывающего
$regexp = '@'.$tagStart.'.+?'.$tagEnd.'@m';
$textWas = '[mod]Тут у нас что угодно[/mod]';
echo preg_replace($regexp, 'Текст На Замену', $textWas);
Answer 2

Попробуйте следующее выражение:

'/\[mod][^\[]+\[\/mod]/'
  • \[mod] - открывающий тег [mod]
  • [^\[]+ - захват до первой встречной квадратной скобки [
  • \[\/mod] - закрывающий тег [/mod]

См. демо регулярного выражения

Пример:

$text = 'Контенту [mod]тут может быть что угодно[/mod] нужно внимание';
echo preg_replace('/\[mod][^\[]+\[\/mod]/', '|замена|', $text);
READ ALSO
Как исправить приход на почту?

Как исправить приход на почту?

Приходит серверным емейломX-Mailer:PHP/7

174
Проблема отправки писем. Bitrix

Проблема отправки писем. Bitrix

У меня странная проблема происходит с классом CEvent::SendОрганизовал рассылку писем адресам, которые берутся из input

156
Работа .htaccess на nginx

Работа .htaccess на nginx

Так как файлhtaccess на nginx не работает, сделал такие правила:

135