Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加正则表达式以检测重复3个字符的单词?_Php_Regex - Fatal编程技术网

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

Php 添加正则表达式以检测重复3个字符的单词?,php,regex,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>"; } $

我找了又找,但找不到与我需要的完全一样的东西。我有一个密码:

$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>";
}
$repeater=“pompom”;
if(preg_match('/([a-zA-Z])\1{3}/',$repeater)){
echo“是,$repeater重复3个字符。
”; } 否则{ echo“否,$repeater不重复3个字符。
”; }
(我几乎无法理解正则表达式的原样……所以忽略我当前的正则表达式……这只是我开始键入的随机性的混合。)
无论如何,我需要正则表达式代码返回
true用于
pompom
grugru
mopmop
坎坎
等等

对于像
COO
daadaa
所有
giigii
等等

正则表达式必须检测具有3个不同字符且在该单词中重复超过一次的任何单词,并返回true
这必须适用于字符之间不一定顺序一致的单词。我已经找到了解决办法。像“cooo”或“poool”这样的词不是我应用这个正则表达式所需要的。注意:只有在单词中有3个或3个以上不同字母的单词重复出现一次以上时,才能返回True。例如,蓬蓬..
对于像coocoo这样的单词,它应该返回false,因为单词中只有两个不同的字母

再一次,请忽略我现在的正则表达式,这正是我决定寻求帮助时所拥有的。我尝试了大概200种不同的方法,当然都错了。

任何帮助都很好,也许我们可以一起解决这个问题,我只需要一些想法就可以了。

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

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

为了帮助您理解正则表达式:我现在就去看看@nfn niel,谢谢。我也回答了这个问题。这是我最喜欢的网站。为了让这成为一个更好的问题(我同意,它已经很有趣了),你能提供更多不同的样本输入,匹配和不匹配吗?我会对“moppom”和“moppopomm”感兴趣。你能写一段有规则的话吗?然后,我会很乐意投票——而且可能不是唯一一个。请随意加入@nfn neil good answer未涵盖的sampe输入和规则。(我并没有投反对票,只是为了澄清这一点。)我需要这一点来处理重复字母不按顺序排列的单词,或者至少也处理不按顺序排列的单词@nfn Neil我想自从你上次发表评论后,我可能已经更新了它。继续刷新。好的,我刷新了,它仍然不是我想要的。例如,该方法允许单词“booboo”作为true返回。其中“booboo”只有两个不同的字母。我只需要有3个或更多不同字母的单词,比如“pompom”只返回为true,并且只有其中3个字母重复(至少),但特定于3个字母也可以。这是我的错误,我需要在我的帖子更具体,将更新!是的,我只是在讨论怎么做。我将尝试使用帽子来排除*相邻的相同字符。。。这不完全是我所需要的,但现在可以用了