SmashingJummy
SmashingJummy

Reputation: 458

Remove words with specific ending from variable in PHP

currently I have this code:

// 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;

This works fine, however I don't want to remove words that start with CHICKEN, but words that ending with BUFFET. I think it has something to with my REGEX in the preg_replace line, but I can't seem to find the correct expression.

Thanks advance!

Upvotes: 1

Views: 154

Answers (2)

delboy1978uk
delboy1978uk

Reputation: 12375

Try this regex:

#\w+BUFFET#

Any word ending in BUFFET will match.

<?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);

Which will output :

CHICKENBUFFET 
HOT WINGS

Try it here: https://3v4l.org/FbMjk

Upvotes: 2

Jigar Shah
Jigar Shah

Reputation: 6223

As you need string end with BUFFET make changes as below

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

Full code

$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;

Upvotes: 2

Related Questions