首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换字符串中单词的第二次出现,然后返回整字符串。

替换字符串中单词的第二次出现,然后返回整字符串。
EN

Stack Overflow用户
提问于 2019-06-21 07:12:33
回答 2查看 431关注 0票数 0

$string =‘你好,Hooman住在地球上,Hooman喜欢猫。’;

现在,我想将2 Hooman单词替换为Human,其结果应该如下:

你好。胡曼住在地球上。人类爱猫。--

我到目前为止所做的.

代码语言:javascript
复制
<?php

$string = 'Hellow there. Hooman lives on earth. Hooman loves cats.';

echo preg_replace('/Hooman/', 'Human', $string, 2);

?>

但是它回来了:你好。地球上的人类生命。人类爱猫。--

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-21 07:25:04

您可以使用preg_replace

代码语言:javascript
复制
function str_replace_n($search, $replace, $subject, $occurrence)
{
    $search = preg_quote($search);
    return preg_replace("/^((?:(?:.*?$search){".--$occurrence."}.*?))$search/", "$1$replace", $subject);
}

echo str_replace_n('Hooman','Human',$string, 2);
票数 1
EN

Stack Overflow用户

发布于 2019-06-21 07:33:42

此代码假定字符串中至少有一个Hooman。

找到Hoomans的位置并在那里进行子字符串,然后在字符串的第二部分进行替换。

代码语言:javascript
复制
$find = "Hooman";
$str = 'Hellow there. Hooman lives on earth. Hooman loves cats.';

$pos = strpos($str, $find);

echo substr($str, 0, $pos+strlen($find)) . str_replace($find, "Human", substr($str, $pos+strlen($find)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56698557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档