PHP PREG_MATCH 2标准

时间:2015-07-27 15:37:19

标签: php regex

我如何轻松地做到这一点:

$ipp='/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)([\s\:\-]+[0-9]{2,5})/'; // IP Address

preg_match_all($ipp, $line, $matches);

这匹配多种格式的ip:port。我想定义第二个标准,就像你在shell脚本中使用(A&& B)那样,只有在端口号不是“143”时才匹配。在将来,我可能希望通过“993”,“995”等其他端口进行扩展。

由于

1 个答案:

答案 0 :(得分:0)

每当我必须完成这样的任务时,我会为它创建一个自定义函数,以便我可以修改它,添加 - 删除参数,如果需要更多函数,我创建一个对象。在那种情况下,我将为该tsak创建一个函数。

    function check($ip, $against){
        $ipChecked = false;
        $againstChecked = false;
        //pregmatch statement with the ip, if true, the $ipChecked = true;
        //pregmatch $against with the ip, if false then $againstChecked = true;
        if ($ipchecked === true && $againstChecked===true)
             return true;
        else
             return false;
    }    

随意自定义该功能以添加所需的任何参数 然后像这样使用它:

$ip = '145.254.021';
$against ='143';
$check = check($ip, $against);
if($check === true){
     //Insert code here...
}

我理解你的问题了吗?