首页 文章

IRC Hostmask匹配

提问于
浏览
0

对于我的IRC机器人,我需要将主机掩码与另一个带有通配符的主机掩码匹配 .

例:

Pablo!Pablo@Pablo.users应该匹配:Pa?lo?P?bl?#?ml . 用户

问号意味着每个字符和数字 .

如果可能,那么看到它匹配下面的字符串会很高兴:

Pablo!Paplo@Pablo.users与Pablo比赛!Pablo @ Pab *

的!和@总是在hostmask中 .

有人可以为这个任务做一个正则表达式吗?

我已经尝试过,但是代码很庞大且经常不准确 .

谢谢分配!

1 回答

  • 0

    我为我正在创建的PHPIRCd写了这个 .

    function match($mask, $expression) {
        $expression = str_replace('\\*', '.+', preg_quote($expression, '/'));
        return preg_match('/^' . $expression. '$/', $mask);
    }
    

    你可以这样称呼它: match('Pablo!Pablo@Pablo', 'Pab*o!*@*blo') . 这可能不是您正在寻找的,但我希望它能让您走上正确的道路 .

相关问题