我是新手,想知道如何在 php 中使用正则表达式。如果我有类似的文字"haha" "abcabcabc" "hehehe" "cupcupcupcup"
(包含重复的音节词)。
如何删除该文本?
(说$text="cupcupcup";
“,如何使这个像$text="";
)
抱歉,如果有同样的问题(我有搜索,但找不到描述我的问题的页面)
谢谢你的赞赏。:)
我是新手,想知道如何在 php 中使用正则表达式。如果我有类似的文字"haha" "abcabcabc" "hehehe" "cupcupcupcup"
(包含重复的音节词)。
如何删除该文本?
(说$text="cupcupcup";
“,如何使这个像$text="";
)
抱歉,如果有同样的问题(我有搜索,但找不到描述我的问题的页面)
谢谢你的赞赏。:)
尝试
$txt = preg_replace("/^(.*)(\\1+)$/", "", $txt);
这会在字符串的开头搜索一个序列,然后匹配该字符串的至少一个重复项,然后匹配字符串的结尾。
例如
$txt = preg_replace("/^(.*)(\\1+)$/", "", "cupcupcup"); //=> ""
$txt = preg_replace("/^(.*)(\\1+)$/", "", "cucupcup"); //=> "cucupcup"
好吧,我想这会做
\b(?=\w*[aeiou]\w*)(\w*)\1+
-------------
|
|->check if its a syllable word
将其替换为""
如果文字像:
$txt = preg_replace("/(.*)(\\1+)/", "", "the text is cupcupcup and cupcupcupa");
这将删除cupcupcup
and cupcupcupa
。如何删除cupcupcup
?
所以这就是我想出的:
([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,}
:重复第 1 组两次或更多次。