一致する文字列から PADDING 部分文字列を除外して、START と END の間に配置されたすべての文字列を検索する必要があります。私が見つけた最良の方法は
$r="stuffSTARTthisPADDINGisENDstuffstuffSTARTwhatPADDINGIwantPADDINGtoPADDINGfindENDstuff" ;
preg_match_all('/START(.*?)END/',str_replace('PADDING','',$r),$m);
print(join($m[1]));
> thisiswhatIwanttofind
可能な限り最小のコードサイズでこれを行いたい: preg_match_all のみで str_replace を使用せず、最終的に結合配列なしで文字列を直接返す短いものがありますか? ルックアラウンド式をいくつか試してみましたが、適切な式が見つかりません。