如何将双/多个字母替换为单个字母?

4 php regex

我需要转换一个单词中出现两次或更多字母的单个字母.

例如:

School -> Schol
Google -> Gogle
Gooooogle -> Gogle
VooDoo -> Vodo
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容,但坚持使用eregi_replace中的第二个参数.

$word = 'Goooogle';
$word2 = eregi_replace("([a-z]{2,})", "?", $word);
Run Code Online (Sandbox Code Playgroud)

如果我\\\1用来替换?,它会显示完全匹配.我怎么把它写成单个字母?

有人可以帮忙吗?谢谢

Ste*_*rig 9

请参阅正则表达式,将两个(或更多)连续字符替换为仅一个?

顺便说一句:您应该使用preg_*(PCRE)函数而不是不推荐使用的ereg_*函数(POSIX).

Richard Szalay的回答是正确的:

$word = 'Goooogle';
$word2 = preg_replace('/(\w)\1+/', '$1', $word);
Run Code Online (Sandbox Code Playgroud)