2017-01-21 7 views
0

preg_replace와 같은 함수가 포함 된 플러그인 (https://github.com/jasny/twig-extensions)을 사용하여 PHP 용 Twig 템플릿을 사용하고 있습니다.Twig를 사용하여 마지막 어커런스를 문자열 끝으로 바꾸기 preg_replace

나는 추적 문자열을 가지고 :

Coverking_CSC_Neosupreme_1Row-F-150_Series-01-MASS 
Coverking_CSC_Neosupreme_1Row-F-150_Series-01-ANYTHING 
Coverking_CSC_Neosupreme_1Row-F-150_Series-01 

내가 마지막으로 -XX의 발생 또는 빈 문자열로 -XXANYTHING를 교체합니다.

그래서 온라인으로보고 관리하고 -XX

str|preg_replace("/\-[0-9]{2}(?!.*\-[0-9]{2})/","") 

어떻게의 마지막 발생을 제거하려면 다음 정규 표현식을 발견

Coverking_CSC_Neosupreme_1Row-F-150_Series 

모든 문자열에 대한 교체의 결과는 이상이어야합니다 내가 원하는 결과를 제공하기 위해 위의 정규식을 수정합니까?

답변

1

당신이 사용할 수있는 감사 : 당신이 마지막까지 -XX-에서 아무것도를 제거하려면

preg_replace("/-\d\d(-.*|)$/","","Coverking_CSC_Neosupreme_1Row-F-150_Series-01-MASS"); 
+0

감사합니다. @ l-vadim. 추가 시나리오를 추가해야합니다. 문자열은 "-MASS"로 끝나지 않을 수 있습니다. 단순히 "-XX"또는 "-XX-ANYTHING"로 끝나기 만하면됩니다. – user2471801

+0

가능한 모든 시나리오를 나열 해주십시오. 덕분에 –

+0

또한 내 예제를 사용해 보겠습니다. -XX-ANYTHING –

0

을, 당신은 때까지 일치 할 정의 $ 앵커 문자를 사용 문자열의 마지막 문자.

당신은 같은 것을 할 수 있습니다

{{ str|preg_replace("/\-[0-9]{2}(\-[\w\-]+)?$/", "") }}

의 \ W는 0-9 A-Z와 A-Z와 일치합니다.

작업에서 정규 표현식을 참조하십시오

https://regex101.com/r/aiKMDn/2

편집 :

업데이트 정규식가 문자열이 끝날 때까지 -XX로 선택 경기 후 아무것도 할 수 있습니다.