如何多次停止preg_replace替换

时间:2016-03-23 10:45:03

标签: php preg-replace

我有一个字符串,我想在两个第一个单词之后添加换行符:

$string = 'This is my string I want to but cut.

到目前为止我在每个两个单词之后添加了换行符,但这不是我想要的......

preg_replace( '~((\w+\s){2})~i', '$1' . '<br>', $string );

2 个答案:

答案 0 :(得分:4)

函数preg_replace($pattern, $replacement, $subject ,$limit = -1, &$count)提供了默认设置为$limit的可选参数-1,这意味着“无限制”。

规范说明了以下$limit

  

每个主题中每种模式的最大可能替换   串。默认为-1(无限制)。

因此,将limit参数添加到preg_replace-function的调用中,使其只替换一次:

preg_replace( '~((\w+\s){2})~i', '$1' . '<br>', $strong, 1);

答案 1 :(得分:1)

^模式添加到正则表达式以匹配字符串的开头:

preg_replace( '~^((\w+\s){2})~i', '$1<br>', $strong );