2011-01-09 73 views
0

對於我的IRC機器人,我需要將一個主掩碼與另一個帶有通配符的主掩碼進行匹配。IRC主機掩碼匹配

實施例:

[email protected]應該匹配:[email protected]??blo.users

的問號裝置中的每個字符和號碼。

如果這是可能的,然後它會很高興地看到它的字符串匹配如下:

[email protected]與巴勃羅巴勃羅@平安*

比賽!和@始終在主掩碼中。

有人可以爲此任務制定正則表達式嗎?

我試過了,但是代碼很大,而且通常不準確。

謝謝分配!

+0

當你說'巨大' - 什麼,100行? 5000?如果它是100行或更少,我會說與測試用例一起發佈在你的問題中。 – 2011-01-09 16:08:03

回答

0

我寫了這個爲我創建的PHPIRCd。

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

你可以這樣稱呼它:match('[email protected]', 'Pab*o!*@*blo')。這可能不是你想要的,但我希望它能讓你走上正軌。

+0

如果您需要Perl解決方案,可以使用[`IRC :: Utils`](http://search.cpan.org/perldoc?IRC::Utils#matches_mask)模塊中的`matches_mask()`。 – Hinrik 2011-04-27 22:50:29

相關問題