對於我的IRC機器人,我需要將一個主掩碼與另一個帶有通配符的主掩碼進行匹配。IRC主機掩碼匹配
實施例:
[email protected]應該匹配:[email protected]??blo.users
的問號裝置中的每個字符和號碼。
如果這是可能的,然後它會很高興地看到它的字符串匹配如下:
[email protected]與巴勃羅巴勃羅@平安*
比賽!和@始終在主掩碼中。
有人可以爲此任務制定正則表達式嗎?
我試過了,但是代碼很大,而且通常不準確。
謝謝分配!
對於我的IRC機器人,我需要將一個主掩碼與另一個帶有通配符的主掩碼進行匹配。IRC主機掩碼匹配
實施例:
[email protected]應該匹配:[email protected]??blo.users
的問號裝置中的每個字符和號碼。
如果這是可能的,然後它會很高興地看到它的字符串匹配如下:
[email protected]與巴勃羅巴勃羅@平安*
比賽!和@始終在主掩碼中。
有人可以爲此任務制定正則表達式嗎?
我試過了,但是代碼很大,而且通常不準確。
謝謝分配!
我寫了這個爲我創建的PHPIRCd。
function match($mask, $expression) {
$expression = str_replace('\\*', '.+', preg_quote($expression, '/'));
return preg_match('/^' . $expression. '$/', $mask);
}
你可以這樣稱呼它:match('[email protected]', 'Pab*o!*@*blo')
。這可能不是你想要的,但我希望它能讓你走上正軌。
如果您需要Perl解決方案,可以使用[`IRC :: Utils`](http://search.cpan.org/perldoc?IRC::Utils#matches_mask)模塊中的`matches_mask()`。 – Hinrik 2011-04-27 22:50:29
當你說'巨大' - 什麼,100行? 5000?如果它是100行或更少,我會說與測試用例一起發佈在你的問題中。 – 2011-01-09 16:08:03