2016-10-20 5 views
1

프로젝트 이름이 포함 된 $name이라는 변수가 있습니다. 대부분의 경우, 이름은 때때로 월/년 접두사가없는,문자열에서 특정 발생을 제거하십시오.

OCT16: Some Project 

는 그러나,이 형식에 항상되지 않습니다 형식을 취합니다.

내가 시도한 것은 이것입니다. 접두어가 MMMYY 인 경우 : 이름에서이 부분을 제거해야합니다. 이제 나는이 특정 패턴을 문자열에서 제거하기 위해 아마도 preg_replace과 같은 것을 사용할 수 있다는 것을 알았지 만,이 패턴이 처음부터 있는지 확인하려면 어떻게해야합니까?

감사의 말.

감사

+0

가'preg_replace이다를 사용해보십시오 ('~ \ d를 {6} $ ~', '', $ s의)'문자열의 끝에서 6 개 자리를 제거합니다. –

+0

내가 말했듯이, 항상 이렇게 시작하지는 않기 때문에 먼저 확인해야합니다. –

+3

바꾸기 전에'preg_replace'도 검사를 수행하는지 확인해야하는 이유는 무엇입니까? 일치가 발생하지 않으면'preg_replace'는 변경되지 않은 문자열을 반환합니다. –

답변

2

사용하여 다음과 같은 방법 :

$project_name = 'OCT16: Some Project'; 
$project_name = preg_replace("/\b[A-Z]{3,4}\d{2}:\s?/u", "", $project_name); 

print_r($project_name); // "Some Project" 

// another test case: 
$project_name = ' Some Project OCT16: some text'; 
.... 
print_r($project_name); // "Some Project some text" 
2

귀하의 정규 표현식은 실제로 다음을해야합니다 : 그것은 일치하는 항목을 찾을 수없는 경우

(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)\d{2}:\s? 

preg_replace 그냥 원래 문자열을 반환합니다.

관련 문제