添加正则表达式来检测重复3个字符的单词?

时间:2017-04-01 04:41:10

标签: php regex

我搜索过但搜索过的却找不到我想要的东西。我有一个代码:

$repeater = "pompom";

    if (preg_match('/([a-zA-Z])\1{3}/', $repeater)) {
    echo "Yes, $repeater does repeat 3 characters.<br>";
}
else {
    echo "No, $repeater does not repeat 3 characters.<br>";
}

(我几乎无法理解正则表达式......所以只要忽略我当前的正则表达式......它只是我开始输入的随机性的混合物。)
无论如何,我需要正则表达式代码返回
true 适用于像 的绒球
grugru
mopmop
康康舞
等...

并返回 false 代表
的单词 的 coocoo
daadaa
allall
giigii
等。

对于 3个不同字符 在该字词中重复多次的任何字词,正则表达式必须检测并返回true。
这必须适用于具有不一定按顺序排列的字符的单词。我找到了解决方案。诸如&#34; cooo&#34;之类的词或者&#34; pooool&#34;不是我需要应用这个正则表达式。注意:必须仅对单词中包含3个或更多不同字母的单词返回 True ,并且重复多次。如,绒球..
对于像coocoo这样的单词,这应该返回false,因为单词中只有2个不同的字母。

再一次,请忽略我目前的正则表达式,这正是我决定寻求帮助时所拥有的。我尝试过200种不同的方法,当然都错了:] 任何帮助都会很好,也许我们可以一起解决这个问题,我只需要一些想法来反弹。

1 个答案:

答案 0 :(得分:1)

以下正则表达式将按要求执行:

^((.)(?!\2)(.)(?!\2)(?!\3).)\1$

https://regex101.com/r/eHKzWB/3