2017-03-24 1 views
1

왜 이것이 작동하지 않습니까? 이상한 대체 정규 표현식


Result = [YOUTUBE][/YOUTUBE]g434EnjOOuU 

Instead of: [YOUTUBE]g434EnjOOuU[/YOUTUBE] 

$string=" https://youtu.be/g434EnjOOuU "; 

$result=preg_replace("@https?://youtu.be/([a-z0-9-_]*)@isU","[YOUTUBE]$1[/YOUTUBE]",$string); 

난 그냥 교체가 문자열의 끝이 아닌 바로 이곳에 오는 것을 알아낼 수 없습니다.

감사합니다!

답변

1

*을 지연 수량 지정자로 사용하는 U PCRE_UNGREEDY 한정자를 제거하십시오. lazily quantified 패턴이 패턴의 끝에 나타날 때 그것은 보통 빈 문자열과 일치합니다.

fixed regex demo을 참조하십시오.

+1

와우 감사합니다. – bart