php - 如何停止 preg_replace 多次替换

标签 php preg-replace

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

$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 做了如下规定:

The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).

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

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

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

相关文章:

PHP 和 mysql 连接不工作

php - magento - 制作新产品时设置的默认属性

php - $_POST 网站崩溃

php - ZeroMQ 和 PHP-FPM

php - MySQL 3表连接user_id,没有得到NULL值,而是重复的条目

php - 更改 youtube url 以在 php 中嵌入 url

PHP preg_replace 删除字符串中的第一个 HTML 元素

php - 从字符串中删除美元符号

Php正则表达式在字符串中的第一个全大写字母单词后插入字符

php - 空格的正则表达式,但不是转义空格