PHP正则表达式:选择除上次出现的所有项之外的所有项
我正在尝试用
替换
所有
无最后一个
,以便很好地缩进以生成递归函数。
This
that
then
thar
these
them
应变为:
This
that
then
thar
these
them
这是我拥有的:preg_replace('/
(.+?)
/','
$1
',$var);
它当前输出的内容如下:
This
that
then
thar
these
them
快速概述:
需要使用正则表达式缩进第一行和最后一行以外的每一行,如何完成此操作?
解决方案
修复报价问题后,您的输出实际上是:
This
that
then
thar
these
them
使用positive lookahead阻止尾随
被搜索正则表达式吃掉。您的"游标"已设置在它的上方,因此仅每隔一行重写一次;您的匹配"区域"重叠。
echo preg_replace('/
(.+?)(?=
)/', "
$1", $input);
// newline-^ ^-text ^-lookahead ^- replacement
Live demo.
相关文章