网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 2014-11-25 09:51:56

admin
管理员

php 如何用正则匹配重复的数字

比如这种格式 ; 111222333444 , 222444, 666888

出现的都是数字, 每个数字循环三次。 

示例代码:

$regex = '/(?:(\d)\1\1)+/';
echo $str="111222000";
echo "<hr>"; 

if(preg_match($regex, $str , $matches)) {
    var_dump($matches);
} else {
    echo "error";
}

echo $str = "1111000";
echo "<hr>";

if(preg_match($regex, $str , $matches)) {
    var_dump($matches);
} else {
    echo "error";
}

输出结果

111222000array (size=2)
  0 => string '111222000' (length=9)
  1 => string '0' (length=1)
1111000array (size=2)
  0 => string '111' (length=3)
  1 => string '1' (length=1)

如何匹配 

第一: 首先要使用 \d 匹配一个数字

第二: (\d)需要保存一下当前的匹配

第三:(\d)\1 用\1 表示重复一次括号里面的内容

第四:(\d)\1\1 表示同一个数字匹配三次

第五: (?:**) 表示不捕获**.

第六: (?:(\d)\1\1)+ 获取多个重复的三个相同的数字。


ipbbs.net

离线

页脚

Powered by FluxBB