regex — удаляет слова с определенным окончанием из переменной в переполнении стека

в настоящее время у меня есть этот код:

// main title of product
$maintitle = 'CHICKENBUFFET HOT WINGS';

// take first word from $maintitle and put in new variable
list($title1) = explode(' ', $maintitle);

// words that start with CHICKEN are removed and put in new variable
$title2 = preg_replace('/(CHICKEN)\w+/', '', $maintitle);

// echo titles
echo $title1;
echo $title2;

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

Спасибо заранее!

1

Решение

Попробуйте это регулярное выражение:

#\w+BUFFET#

Любое слово, оканчивающееся на BUFFET, будет совпадать.

<?php

// main title of product
$maintitle = 'CHICKENBUFFET HOT WINGS';

// take first word from $maintitle and put in new variable
list($title1) = explode(' ', $maintitle);

// words that start with CHICKEN are removed and put in new variable
$title2 = preg_replace('/\w+BUFFET/', '', $maintitle);

// echo titles
echo $title1."\n";
echo trim($title2);

Который будет выводить:

CHICKENBUFFET
HOT WINGS

Попробуйте это здесь: https://3v4l.org/FbMjk

2

Другие решения

Как вам нужно конец строки с BUFFET внести изменения, как показано ниже

$title2 = preg_replace('/\w+(BUFFET)/', '', $maintitle);

Полный код

$maintitle = 'CHICKENBUFFET HOT WINGS';

// take first word from $maintitle and put in new variable
list($title1) = explode(' ', $maintitle);

// words that start with CHICKEN are removed and put in new variable
$title2 = preg_replace('/\w+(BUFFET)/', '', $maintitle); // changed this line

// echo titles
echo $title1;
echo "<br/>";
echo $title2;
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector