PHP - заменить все между String, включая содержимое - PullRequest
0 голосов
/ 18 октября 2018

Я хочу перебрать строку, которая выглядит следующим образом.

Booo ahh [Hello] and what is [Baby] at your [Mouse]

Моя цель - заменить каждую [@@@] другой строкой, которая не является статичной, но можетобрабатывать содержимое в скобках.

Должно быть что-то вроде

function replace_string($text) {
 ...
 //Maybe some kind of loop for all brackets
 {
  $content = ... //For example Hello, Baby, Mouse => @@@
  $replacement = "I'm a " . $content . "!";
  ...
 }
 return $replacedString;
}

Я не думаю, что это может сработать так, как в моем «предложении», но я надеюсь, что смогу показать то, что хочуделать, и кто-то может мне помочь.

1 Ответ

0 голосов
/ 18 октября 2018

Насколько я понимаю, вы хотите, чтобы эта строка была в конце:

Бу-а-а [Я Привет!] И что такое [Я - Ребенок!] На вашем[Я мышь!]

Так что вы можете использовать функцию preg_replace: http://php.net/manual/en/function.preg-replace.php

Ваш код будет выглядеть так:

function replace_string($text) 
{     
   return preg_replace('/\[([^\]]+)\]+/', "[I'm a $1!]", $string);
}

так

<?php

$string = 'Booo ahh [Hello] and what is [Baby] at your [Mouse]';
echo replace_string($string);
// will display 
// Booo ahh [I'm a Hello!] and what is [I'm a Baby!] at your [I'm a Mouse!]

не уверен, хочешь ли ты сохранить скобки или нет, если не хочешь, и хочешь иметь

Боо, ааа, я Привет!и что я ребенок!на вашем я мышь!

просто используйте:

preg_replace('/\[([^\]]+)\]+/', "I'm a $1!", $string);

Вы можете увидеть регулярное выражение здесь: https://regex101.com/r/8hJQr0/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...