如何从每个单词在字符串中删除特定的字母 - PHP

问题描述:

假设我有这个字符串:如何从每个单词在字符串中删除特定的字母 - PHP

的Hello World你好我的世界

我想删除整个字符串中的前3个字符(但只有当这个词以'Hel'开头时)。输出应该是:

LO世界LO我的世界

谁能推荐一个解决方案?

+0

那么你尝试过什么,有很多的解决方案...非他们是火箭科学 – RiggsFolly

+1

堆栈溢出不是一个免费的代码写作服务,请显示您的代码/努力和实际问题是什么。 – Rizier123

使用 preg_replace功能

简单的解决方案:

$str = "Hello World Hello My World"; 
print_r(preg_replace("/\bHel/", "", $str)); // "lo World lo My World" 

为条件其他方法来从每个字(只有当它出现在字的结尾)除去“RLD”

print_r(preg_replace("/rld\b/", "", $str)); // Hello Wo Hello My Wo 
+0

如果我想从每个单词中删除“rld”(仅当它出现在单词的结尾处),该怎么办? //得到像“你好我好我的窝”的输出 –

+0

@ChintanJain,看我的更新 – RomanPerekhrest

+0

@ chris85,是的,我只记得它应该只以“Hel”开始 – RomanPerekhrest

您可以使用str_replace功能。

$output = str_replace(' Hel', ' ', $string); 

http://php.net/manual/en/function.str-replace.php

+0

@ chris85我的不好,改变了 – DevNiels

+0

半途,尽管如此,仍然不会要求用'Hel'开始。例如传入'CHello'。 – chris85

您可以使用下面的代码:

$str = "Hello World Hello My World"; 
$arr = explode(" ",$str); 
    for ($i = 0; $i <count($arr); $i++) 
    { 
     if (substr($arr[$i], 0, 3) === "Hel") 
     { 
     $arr[$i] = str_replace("Hel","",$arr[$i]); 
     } 
    } 
$outputstr = implode(" ",$arr); 

这里做的事情是,它切片串入不同的单词数组,然后在我用什么都没有替换Hel的循环,所以这将删除Hel和他们将阵列内爆到字符串...这将检查是否赫尔处于启动,然后将取代...

希望这有助于... :)

+0

好的,我也是这么做的 –

+0

做得太过分了...... :) @ chris85 –