我想删除带有正则表达式的前导preg_replace('!^>(?: +)>!m', '>>', $text);
符号之间的空格:
> > > Hello
不适用于
> >> Hello
> > > Hello
>>Hello > >
>>> Hello
> >> Hello
我想表现得像这样:
>>> Hello
>>> Hello
>> Hello > >
>>> Hello
>>> Hello
应该成为
>
但第二个{{1}}已用于匹配前两个符号。
答案 0 :(得分:1)
如果您在单独的字符串上执行替换,请使用
$s = preg_replace('~\G\h*>~', '>', $s);
请参阅regex demo
\G
运算符匹配字符串的开头或前一个成功匹配的结尾。 \h*
将匹配零个或多个水平空白符号。
如果您想要删除输入的每行上的前导>
之间的空格,请使用
$s = preg_replace('~(?:\G|^)\h*>~m', '>', $s)
此处,(?:\G|^)
更改是必要的,因为\G
(即使/m
修饰符)与行的开头不匹配。)