我有一个字符串如下:
a quick brown fox jumps over a lazy dog
我希望结果是
a
quick brown fox jumps over a lazy dog
想要用换行符替换第一次出现的多个(多于1个)空格,但在此之后保留其他多个空格。
我怎么能用preg_replace做到这一点?
由于
答案 0 :(得分:3)
echo preg_replace('/\s{2,}/', "\n", $string, 1);
从PHP documentation开始,preg_replace
的第四个参数是一个可选限制,限制了替换模式的次数。
答案 1 :(得分:3)
使用可选的第四个参数,设置为模式替换的限制:
$str = preg_replace( "/\s{2,}/", PHP_EOL, $str, 1 );
答案 2 :(得分:2)
使用preg_replace()
的$limit
仅替换一次。
$string = preg_replace("/\s\s+/", "\n", $string, 1); // \s\s+ to replace 2 or more
// Where preg_replace($pattern, $replacement, $subject, $limit);
$ limit 每个主题字符串中每个模式的最大可能替换次数。默认为-1(无限制)。