PHP在我搜索的子字符串之前替换字符串的一部分

时间:2016-08-02 14:53:45

标签: php string replace substring

我有一个字符串,例如

“今天羚羊饿了”;

我想搜索“饥饿”并用“xxx”替换之前的3个字符所以在这种情况下的最终结果将是

“今天的羚羊xxxhungry”

我想也许substr_replace函数可能有用,或者可能与strlen结合使用,但我没有得到它。 谢谢。

4 个答案:

答案 0 :(得分:2)

您可以结合使用strpos()substr_replace()来获得所需的行为:

this.$.id

请参阅此phpfiddle了解我的工作示例。

答案 1 :(得分:0)

您可以使用strpos()查找字符串中的特定单词

$value = "The antelope is hungry today";
if(strpos($value , 'hungry ') !== false){
    echo "word found";
}

如果您找到了单词,那么您可以在if条件中替换您喜欢的单词。

答案 2 :(得分:0)

你可以使用正则表达式

$pattern = "/.{3}(?=hungry)/"; 
$string = "The antelope is hungry today";
$replacement = "xxx";
echo preg_replace($pattern, $replacement, $string);

解释

  • 。匹配任何角色
  • {3} 3次
  • (?=饥饿)然后饿了

答案 3 :(得分:0)

尝试此功能,它可以正常工作并解决您的问题:

substr_replace($yourText,"XXX",(strpos($yourText,"partYouAreLookingFor")-3),3);

函数 strpos 可以查找您要查找的文本部分的位置。它将用于定义修改的起点。数字 3 之后表示将要修改的起始点的元素数量