PHP регулярное выражение заменить из строки в строку

0

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

Например:

I have "http://www.website.com" and I want to replace from "www" to "com" with "123xyz".
So"http://www.website.com/something" becomes "http://123xyz/something.

Я предполагаю, что мне нужно использовать preg_replace(), и я думаю, что регулярное выражение должно начинаться с "^ www" и заканчиваться на "com $", но я, похоже, недостаточно понимаю синтаксис регулярного выражения, чтобы создать желаемый эффект,

пожалуйста помоги

Теги:
string
replace

3 ответа

2
Лучший ответ

Что касается вашего примера, вы можете попробовать как это

$string = 'http://www.website.com/something';
$pattern = '/www(.*)com/';

$replacement = '123xyz';
echo preg_replace($pattern, $replacement, $string);
0

Большое спасибо как @CodingAnt, так и @PHPWeblineindia за отличные ответы. Используя @CodingAnt ответ (и еще несколько исследований, которые я сделал онлайн), я написал эту функцию:

function replaceBetween(&$target, $from, $to, $with){
  if(strpos($target, $from)===false)return false;
  $regex = "'".$from."(.*?)".$to."'si";
  preg_match_all($regex, $target, $match);
  $match = $match[1];
  foreach($match as $m) $target = str_replace($from.$m.$to, $with, $target);
  return $target;
}

Кажется, это работает очень хорошо. Надеюсь, кто-то найдет это полезным.

0
$phrase       = "http://www.website.com";
$phraseWords  = array("www", "com");
$replaceTo    = array("123xyz", "something");

$result = str_replace($phraseWords, $replaceTo, $phrase);
echo $result;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню