首页 > 解决方案 > 如何使用php删除字符串中的重复字符?

问题描述

我正在做一个用 php 清理文本的项目。说我有这样的字符串:

$string = 'Life is like. . . . . . a box of chocolate. . . . . '; //each dot separated by space

我怎样才能得到像这样的输出

$string ='Life is like a box of chocolate';

标签: phpstring

解决方案


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

echo preg_replace(array("/(?<!\w) *\. */", "/(?<=\w)\. */"), array("", " "), $string);

在这里,我使用两个正则表达式的数组来匹配两种不同的情况:

  1. 一个点后面和前面有 0 个或多个空格,前面都有一个不是字母或数字的字符(\w在正则表达式中表示字母或数字,这是一个否定的后视)。这被一个空字符串代替。
  2. 一个点后跟 0 个或多个空格,前面是一个字母或数字。这被一个空格代替。

2是匹配并删除点,'like. '但在单词后留下一个空格。

这给出了您的预期结果:'Life is like a box of chocolate'

您可以了解更多关于 regex(正则表达式的缩写)在网络上寻找教程的信息。


推荐阅读