获取角色后的所有内容,即使有重复。python

获取角色后的所有内容,即使有重复。python,python,parsing,irc,Python,Parsing,Irc,我正在编写一个IRC机器人,并且正在使用一大堆拆分来解析消息。 IRC“消息”的格式为: :username!765a4aa2@gateway/web/freenode/ip.***.***.***.*** PRIVMSG #Channel :Message body 特别是获取消息文本的消息: message = data.split(':')[2] 这是最后一次之后的一切:' 但当用户通过IRC发送链接时,消息将如下所示: :username!765a4aa2@gateway/web/f

我正在编写一个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:]

但我忍不住觉得一定有更好的办法。有吗?

设置要拆分的
的数量:

data.split(':', 2)
您将有:

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

设置要拆分的
数量:

data.split(':', 2)
您将有:

['',
'username!765a4aa2@gateway/web/freenode/ip.***.***.***.*** PRIVMSG #Channel ',
'http://web address.com/']
str.split()
接受可选参数
maxslit

message = data.split(':', 2)
str.split()
接受可选参数
maxslit

message = data.split(':', 2)
还有一个.rsplit()是相同的,但从右侧拆分。还有一个.rsplit()是相同的,但从右侧拆分。