我正在创建一个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)
答案 0 :(得分:0)
:(?P<from>.*?)!\S+\sPRIVMSG\s(?P<to>.*?)\s+:(?!VERSION)(?P<msg>.*)$
正在寻找具有否定前瞻: not followed by VERSION
(?!...)
在此处查看:https://regex101.com/r/sQ7eS6/2(单击左侧的单元测试位,然后运行两个测试。或者将行粘贴到主位)