PHP

2017-09-12 1 views
1

에서 변수에서 특정 엔딩 단어를 제거 현재이 코드가이 제대로 작동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('/(CHICKEN)\w+/', '', $maintitle); 

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

그러나 나는 뷔페로 끝나는 CHICKEN로 시작하는 단어 만 단어를 제거하지 않으려합니다. preg_replace 줄에는 REGEX가있는 것이 좋지만 올바른 표현식을 찾을 수없는 것 같습니다.

감사합니다.

+0

그것은 매우 분명하지 않다 출력됩니다

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

. ['preg_replace ('/ \ b \ w * BUFFET \ b /', ', $ maintitle)'] (https://ideone.com/3peOX4)? –

+0

괄호 안에'CHICKEN'을 넣을 필요가 없으며''CHICKEN''으로 ** 시작 ** '/ CHICKEN /'과 일치하는'regex'가 있습니다. '^ '가 없으면 문자열 중간에'CHICKEN'과 일치합니다. – axiac

+0

... 아니면 잘못 읽은 것일까 요?'뷔페 '를 보관 하시겠습니까? – chris85

답변

2

이 정규식을 시도해보십시오

#\w+BUFFET#

뷔페로 끝나는 모든 단어 것 시합.

CHICKENBUFFET 
HOT WINGS 

여기를보십시오 : https://3v4l.org/FbMjk

+1

아니요, AnythingEndingInBUFFET과 일치합니다 – delboy1978uk

+1

문자열에 다른 BUFFET을 추가했습니다. 그것은 남아있다. https://3v4l.org/CApMM – delboy1978uk

+0

감사합니다! 이것은 내가하려고 노력하고 있었던 것이다 :) – SmashingJummy

2

당신이 뷔페 문자열의 끝이

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