php preg_replace 仅当字符串以 space 结尾时才有效

php preg_replace working only if there's ending space in string

我有这个模式:

preg_replace_callback('#@abc\((.*?)\)(.*?)@end.#is', ..

我的模板字符串:

$test = "@abc('test')<h1>test</h1>@end"; // not working
$test2 = "@abc('test')<h1>test</h1>@end "; // working

为什么@end 后面没有 space 就不起作用?

正如@Rizier123 所指出的,这是正确的正则表达式:

preg_replace_callback('#@abc\((.*?)\)(.*?)@end#is', ..