为什么这不起作用(在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]
我只是无法弄清楚替换在字符串的末尾而不是在正确的位置。
谢谢!
答案 0 :(得分:1)
删除U
PCRE_UNGREEDY修饰符,使*
充当延迟量词。当一个延迟量化的模式出现在模式的末尾时,它通常匹配一个空字符串。
请参阅fixed regex demo。