仅用 preg_replace 替换 preg 字符串的最后一个匹配项?
replace only the last match of preg string with preg_replace?
仅图片
$content="}
}
hello world
}
}"
$text='}\s*[\r\n]*\s*[\r\n]*\s*}';
$ss="~$text(?!.*$text)~";
$res=preg_replace($ss,'replacement',content);
echo $res;//$res:"replacement hello world replacement"
我只想使用 preg_replace()
替换最后一个 '} }'
$content="}}hello world}}";
$text='}\s*[\r\n]*\s*[\r\n]*\s*}';
$ss="~$text(?!.*$text)~";
$res=preg_replace($ss,'replacement',$content);
print_r($res);exit;
输出:
}}hello worldreplacement
您可以使用
将最后出现的 }
替换为它们之间的空白字符:
}\s*}(?![^}]*})$
}\s*}
匹配 }
, 0+ 个空白字符,然后 }
(?![^}]*})
否定前瞻,断言右边的内容不再出现 ]
$
断言字符串结束
请注意,这不考虑余额括号,只考虑最后一个 }
仅图片
$content="}
}
hello world
}
}"
$text='}\s*[\r\n]*\s*[\r\n]*\s*}';
$ss="~$text(?!.*$text)~";
$res=preg_replace($ss,'replacement',content);
echo $res;//$res:"replacement hello world replacement"
我只想使用 preg_replace()
替换最后一个 '} }' $content="}}hello world}}";
$text='}\s*[\r\n]*\s*[\r\n]*\s*}';
$ss="~$text(?!.*$text)~";
$res=preg_replace($ss,'replacement',$content);
print_r($res);exit;
输出:
}}hello worldreplacement
您可以使用
将最后出现的}
替换为它们之间的空白字符:
}\s*}(?![^}]*})$
}\s*}
匹配}
, 0+ 个空白字符,然后}
(?![^}]*})
否定前瞻,断言右边的内容不再出现]
$
断言字符串结束
请注意,这不考虑余额括号,只考虑最后一个 }