在 PHP 中,有时我们可能想要替换字符串的第一次出现。
为此,我们可以使用 preg_replace 函数进行正则表达式替换;然而,由于转义反斜杠的困难,使用 substr_replace 更安全,并且当我们只需要进行直接替换而不需要 RegEx 功能时,它也更有用。
建议使用 substr_replace 进行简单的插入式替换。
为此,我们可以创建自己的函数,可以在任何需要的地方使用。
下面的函数将在成功时返回修改后的字符串,在失败时返回原始字符串:
function replace_first_str($search_str, $replacement_str, $src_str){ return (false !== ($pos = strpos($src_str, $search_str))) ? substr_replace($src_str, $replacement_str, $pos, strlen($search_str)) : $src_str; }
用法:
$src_str = 'one, one, zero'; echo replace_first_str('one', 'two', $src_str);
输出:
two, one, zero
用 preg_replace 替换第一次出现字符串
preg_replace 函数允许我们在字符串内部执行基于正则表达式的搜索和替换。
该函数接受 5 个参数,如下所列:
- Pattern
- Replacement
- Subject
- Limit
- Count
第一个参数,要匹配的模式
第二个是替换字符串。
第三个是主题,(也就是要搜索的源字符串)。
第四个参数称为限制参数,我们可以使用它来限制执行的替换次数。
最后一个参数称为计数参数,包含替换次数。
这与本教程无关,因为我们只会替换字符串中的第一次出现。
以下是如何替换字符串中第一个匹配项的简单示例:abcde:
$Replacement = 'edcba'; $Source = '1234 abcdefg 1234 abcdefg 1234 abcdefg'; echo preg_replace('/abcde/', $Replacement, $Source, 1);
limit 参数使函数只替换第一个匹配项——值 2 将替换前两个,3 替换前三个,依此类推。
日期:2020-06-02 22:17:14 来源:oir作者:oir