我需要将一个单词中出现两次或更多次的任何字母转换为一个单独的字母。
例如:
School -> Schol
Google -> Gogle
Gooooogle -> Gogle
VooDoo -> Vodo
我尝试了以下方法,但卡在了 eregi_replace 的第二个参数处。
$word = 'Goooogle';
$word2 = eregi_replace("([a-z]{2,})", "?", $word);
如果我使用 \\\1
替换 ?,它会显示完全匹配。
如何使其成为单个字母?
有人可以帮忙吗?谢谢
最佳答案
参见 regular expression to replace two (or more) consecutive characters by only one?
顺便说一下:您应该使用 preg_*
(PCRE) 函数而不是已弃用的 ereg_*
函数 (POSIX)。
Richard Szalay的回答引导正确的方法:
$word = 'Goooogle';
$word2 = preg_replace('/(\w)\1+/', '$1', $word);
关于php - 如何将双/多个字母替换为单个字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/801545/