2017-03-24 1 views
1

なぜこれは(phpで)うまくいかないのですか?正規表現での変わった置換

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

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

Result = [YOUTUBE][/YOUTUBE]g434EnjOOuU 

Instead of: [YOUTUBE]g434EnjOOuU[/YOUTUBE] 

私はちょうど交換は、文字列の末尾の代わりに、適切な場所に何が来るのかを把握することはできません。

ありがとうございます!

答えて

1

U PCRE_UNGREEDY修飾子を削除して、*を遅延量制限子として機能させます。遅延の定量化されたパターンがパターンの最後に現れると、それは通常空の文字列と一致します。

fixed regex demoを参照してください。

+1

ありがとうございました。 – bart