我试图取代'他'通过'她'在两个给定的位置之间,在这种情况下,玛丽亚(0)和彼得(34)之间。所以基本上我给两个位置并替换边界之间句子中的所有出现。我尝试过以下简单的代码,但似乎substr_replace函数不允许我这样做。有什么想法使它有效吗?
$sentence = "Maria went to London where he met Peter with his family.";
$clean = substr_replace($sentence, "he", "she", 0, 34);
答案 0 :(得分:1)
您错误地使用 substr_replace() ,在这种情况下您不需要它。相反,请尝试使用str_replace()和substr()的组合:
$sentence = "Maria went to London where he met Peter with his family.";
$clean = str_replace(' he ', ' she ', substr($sentence, 0, 34));
$clean .= substr($sentence, 34);
基本上,您要在he
的指定子网上用she
替换$sentence
,然后重新连接$sentence
的其余部分。
请注意' he '
和' she '
周围的空格。这是必要的,否则您将where
替换为wshere
。
答案 1 :(得分:1)
编辑:马克让我意识到我误解了你的问题。但是我觉得你仍然觉得这个正则表达式很有用,所以我要留下我的答案,但是对于你的确切问题的答案,请看MarkM的答案。
如果你想用“她”这个词替换他所有的单词实例。以他自己的话来说我会做这样的事情。
$pattern = '/(\b)he(\b)/';
$replacement = '$1she$2';
$subject = 'Maria went to London where he met Peter with his family';
$newString = preg_replace($pattern, $replacement, $subject);
正则表达式基本上是说找到所有字母的实例'他'被有效的单词分隔符(\ b)包围,并将其替换为'她'被发现的单词分隔符所包围。
编辑:
<强> See It Run 强>