如何在IRC上正确匹配私人消息?

时间:2016-06-21 17:15:56

标签: python regex irc

我正在创建一个irc lib,我似乎无法匹配私人消息,它也匹配版本字符串。

REGEX

:(?P<from>.*?)!\S+\sPRIVMSG\s(?P<to>.*?)\s:(?P<msg>.+)

VERSION MATCH

VERSION_STRING: :AkaneSenri1!~AkaneSenr@72A6C9FC.264941B0.A6596FAF.IP PRIVMSG AkaneSenri1 :VERSION
MATCHED: AkaneSenri1', u'AkaneSenri1', u'\x01VERSION\x01
PRIVATE_MESSAGE_STRING: :AkaneSenri1!~AkaneSenr@72A6C9FC.264941B0.A6596FAF.IP PRIVMSG AkaneSenri1 :T
MATCHED: (u'AkaneSenri1', u'AkaneSenri1', u'T') # is what I want

我得到的是连接时服务器发送的版本字符串。 我需要的是,当用户向机器人发送PM时。 (缺口/ MSG)

1 个答案:

答案 0 :(得分:0)

:(?P<from>.*?)!\S+\sPRIVMSG\s(?P<to>.*?)\s+:(?!VERSION)(?P<msg>.*)$

正在寻找具有否定前瞻: not followed by VERSION

(?!...)

在此处查看:https://regex101.com/r/sQ7eS6/2(单击左侧的单元测试位,然后运行两个测试。或者将行粘贴到主位)