获取角色后的所有内容,即使有重复也是如此。蟒蛇

时间:2012-11-15 23:52:21

标签: python parsing irc

我正在编写一个IRC机器人,并使用一大堆拆分解析消息。 IRC“消息”的格式为:

:username!765a4aa2@gateway/web/freenode/ip.***.***.***.*** PRIVMSG #Channel :Message body

特别是得到消息文本的那个:

message = data.split(':')[2]

这是最后一个':'之后的所有内容 但是当用户通过IRC发送链接时,消息将如下所示:

:username!765a4aa2@gateway/web/freenode/ip.***.***.***.*** PRIVMSG #Channel :http://web address.com/

并且代码只会获取消息的“http”部分,因为其余部分现在位于拆分的第三部分。

那么如何解析包含链接的消息呢?

一种方法是获取第一部分的长度,然后将其删除:

message = data[len(data.split(':')[1])+1:]

但我不禁觉得必须有更好的方法。有吗?

2 个答案:

答案 0 :(得分:3)

str.split()接受可选参数maxsplit

message = data.split(':', 2)

答案 1 :(得分:1)

设置您要分割的:的数量:

data.split(':', 2)

你将拥有:

['',
'username!765a4aa2@gateway/web/freenode/ip.***.***.***.*** PRIVMSG #Channel ',
'http://web address.com/']