Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php删除字符串中的重复字符?_Php_String - Fatal编程技术网

如何使用php删除字符串中的重复字符?

如何使用php删除字符串中的重复字符?,php,string,Php,String,我正在做一个项目,这是清理与php文本。 假设我有这样的字符串: $string='生活就像。一盒巧克力//每个点用空格隔开 我如何获得这样的输出 $string='人生就像一盒巧克力'; 你可以用 这不是一个容易的替代品吗 str_replace(". ", "", $text); 如果您的预期结果只是去除点和周围的空间,则可以使用,但要获得预期结果,您需要更复杂的正则表达式: echo preg_replace(array("/(?<!\w) *\. */", "/(?<=\w

我正在做一个项目,这是清理与php文本。 假设我有这样的字符串:

$string='生活就像。一盒巧克力//每个点用空格隔开 我如何获得这样的输出

$string='人生就像一盒巧克力'; 你可以用


这不是一个容易的替代品吗

str_replace(". ", "", $text);

如果您的预期结果只是去除点和周围的空间,则可以使用,但要获得预期结果,您需要更复杂的正则表达式:

echo preg_replace(array("/(?<!\w) *\. */", "/(?<=\w)\. */"), array("", " "), $string);
在这里,我使用两个正则表达式的数组来匹配两种不同的情况:

在0或更多空格后面和前面的点,所有空格前面都有一个不是字母或数字的字符\w在正则表达式中表示字母或数字,这是一个负查找。这被一个空字符串替换。 一个点,后跟0个或多个空格,前面有一个字母或数字。这被一个空格代替。 2是匹配并删除“like”中的点但是在单词后面留一个空格

这会给你预期的结果:“生活就像一盒巧克力”


您可以在网上查找教程的正则表达式的缩写regex上了解更多信息。

使用str_replace并将点+空格替换为零。您的问题标题令人困惑。生命的产出应该是什么样的。一盒巧克力。,但是我不喜欢巧克力,哈哈?你所说的重复字符是什么意思?你想只删除点吗?请对问题本身进行进一步解释。不要把这些分散在评论部分,你确定吗?尝试使用测试。第二个作为输入字符串
echo preg_replace(array("/(?<!\w) *\. */", "/(?<=\w)\. */"), array("", " "), $string);