这正则表达式谁懂啊
if(preg_match(‘/(.)\1{4,}/‘,$body)){
throw new \Exception(‘Your reply contains spam.’);
————————————————
原文作者:洛未必达
转自链接:50.垃圾内容检测机制(二)
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
这个1{4,}前面是双反斜杠,,不知道为啥少显示一个
. 代表任意一个
(.) 代表我们需要的
\1 代表1 当然不加\ 也一样
{4,} 代表1必须 4+ 次
自己去测试
匹配除换行符(\n、\r)之外的任何连续重复>4次的字符的字符
最近学习Linux,盲说一下,还未测试
经常我的测试,发现,最终其实是匹配5个以上的重复字符
我发现没考虑到的地方是:
(.)
是算一个字符的,\1{4,}
是至少四个字符的,所以最终是至少有5个字符或以上经过我在php里面执行匹配,发现和Linux的结果是一致的,即最终是匹配的是 : 等于或大于 5个以上连续相同的任意字符;PHP中测试如下:
去跑一次啥都明白了 tool.chinaz.com/regex/