可能的重复项:
仅使用preg_replace替换第一个匹配项
我有一个字符串如下:
a quick brown fox jumps over a lazy dog
我希望结果是
a
quick brown fox jumps over a lazy dog
只想用换行符替换第一次出现的多个(超过 1 个)空格,但保留此后的其他多个空格不变。
我怎样才能用preg_replace做到这一点?
谢谢
echo preg_replace('/'s{2,}/', "'n", $string, 1);
在 PHP 文档中,preg_replace
的第四个参数是可选限制,限制应替换模式的次数。
使用可选的第四个参数,设置为模式进行的替换限制:
$str = preg_replace( "/'s{2,}/", PHP_EOL, $str, 1 );
演示:http://codepad.org/Kocnyryj
使用 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(无限制)。