PHP - 删除重复的音节单词

时间:2013-06-02 15:28:35

标签: php regex string duplicates

我是新手,想知道如何在php中使用正则表达式。 如果我有"haha" "abcabcabc" "hehehe" "cupcupcupcup"这样的文字(包含重复的音节词)。

如何删除该文字?

(比如$text="cupcupcup";“,如何使其成为$text="";

抱歉,如果有同样的问题(我有搜索,但无法找到描述我的问题的页面)

谢谢你的欣赏。 :)

4 个答案:

答案 0 :(得分:4)

尝试

$txt = preg_replace("/^(.*)(\\1+)$/", "", $txt);

这将在字符串的开头搜索序列,然后匹配该字符串的至少一次重复,然后匹配字符串的结尾。

e.g。

$txt = preg_replace("/^(.*)(\\1+)$/", "", "cupcupcup");  //=> ""
$txt = preg_replace("/^(.*)(\\1+)$/", "", "cucupcup");   //=> "cucupcup"

答案 1 :(得分:2)

嗯,我想这会做

\b(?=\w*[aeiou]\w*)(\w*)\1+
     -------------
           |
           |->check if its a syllable word

将其替换为""

答案 2 :(得分:0)

所以这就是我提出的:

([b-df-hj-np-tv-xz][aeiouy](?:[a-z])?|[aeiouy][b-df-hj-np-tv-xz](?:[a-z])?)(\1){2,}

Online demo

<强>解释

  • [b-df-hj-np-tv-xz]:匹配辅音。
  • [aeiouy]:匹配元音。
  • [a-z]:匹配一封信。
  • ([b-df-hj-np-tv-xz][aeiouy](?:[a-z])?:匹配辅音,然后是元音,可选地后跟一个字母。
  • |[aeiouy][b-df-hj-np-tv-xz](?:[a-z])?):或者跟一个元音后跟一个辅音,然后选择一个字母。
  • (\1){2,}:重复第一组两次或多次。

答案 3 :(得分:0)

如果文字如:

$txt = preg_replace("/(.*)(\\1+)/", "", "the text is  cupcupcup and cupcupcupa");

将删除cupcupcupcupcupcupa。如何删除cupcupcup