我是新手,想知道如何在php中使用正则表达式。
如果我有"haha" "abcabcabc" "hehehe" "cupcupcupcup"
这样的文字(包含重复的音节词)。
如何删除该文字?
(比如$text="cupcupcup";
“,如何使其成为$text="";
)
抱歉,如果有同样的问题(我有搜索,但无法找到描述我的问题的页面)
谢谢你的欣赏。 :)答案 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,}
<强>解释强>
[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");
将删除cupcupcup
和cupcupcupa
。如何删除cupcupcup
?