Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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_Duplicates_Chars - Fatal编程技术网

Php 如何从字符串中删除重复字符,但有例外情况,如';好';或';酷';?

Php 如何从字符串中删除重复字符,但有例外情况,如';好';或';酷';?,php,string,duplicates,chars,Php,String,Duplicates,Chars,我试图从字符串中删除重复字符,如 我不喜欢这个。太棒了。非常好 输出如下所示: 我喜欢这个。太棒了,非常好 我已经在PHP中使用了这个指令 $str=preg_replace(“/()\1+/”、“$1”、$str) 但它输出 我喜欢这个。太棒了。非常感谢上帝 问题在于,既然您开始使用regex,那么应该重复使用像“good”或“cool”这样的字符 使用&检查重复字母前后是否有您不想匹配的内容 $str = preg_replace('/(?<!g|c)(\w)\1+(?!d|l)/',

我试图从字符串中删除重复字符,如 我不喜欢这个。太棒了。非常好

输出如下所示: 我喜欢这个。太棒了,非常好

我已经在PHP中使用了这个指令 $str=preg_replace(“/()\1+/”、“$1”、$str)

但它输出 我喜欢这个。太棒了。非常感谢上帝


问题在于,既然您开始使用regex,那么应该重复使用像“good”或“cool”这样的字符

使用&检查重复字母前后是否有您不想匹配的内容

$str = preg_replace('/(?<!g|c)(\w)\1+(?!d|l)/', '$1', $str);

$str=preg_replace('/(?我想您可以将允许的单词(如“good”和“cool”)存储在Trie字典中

无论何时检查单词的重复字符,都应该允许重复字符,直到字典中仍有一些前缀为该前缀的有效单词为止

当字典中没有前缀的有效单词时,您可以从

上的该点删除重复字符

如果你正在检查的单词是“gooood”

在trie中勾选“Go”,它将返回“God”和“Good”作为有效单词
在trie中勾选“Goo”,它将返回“Good”作为有效单词
在trie中勾选“Gooo”,它将显示没有有效的单词


所以你一直都在“咕咕”除去O的

的其余部分,你只需要创建一个人工智能,它将为你提供证据,并根据上下文确定需要使用哪个词。@泰勒科林斯不被称为人工智能,它被称为逻辑。也许是某种拼写检查库。我真的觉得这是与之相伴的噩梦。lution并不能解决我所有的问题,但可能会有所帮助。谢谢