我需要找到所有出现在 START 和 END 之间的字符串,但需要排除匹配字符串中的 PADDING 子字符串。我找到的最佳方法是
$r="stuffSTARTthisPADDINGisENDstuffstuffSTARTwhatPADDINGIwantPADDINGtoPADDINGfindENDstuff" ;
preg_match_all('/START(.*?)END/',str_replace('PADDING','',$r),$m);
print(join($m[1]));
> thisiswhatIwanttofind
我希望使用最小的代码量来实现这个功能:有没有一种更短的方法只用 preg_match_all 而不使用 str_replace,并且直接返回字符串而不是数组?我已经尝试了一些回溯表达式,但是找不到合适的方法。