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

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


到目前为止,我所知道的是在每两个字之后添加一个换行符,但这不是我想要的……

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

最佳答案

函数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);

关于php - 如何停止preg_replace替换多次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36176000/

10-13 05:30