获取角色后的所有内容,即使有重复。python
我正在编写一个IRC机器人,并且正在使用一大堆拆分来解析消息。 IRC“消息”的格式为:获取角色后的所有内容,即使有重复。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
: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()是相同的,但从右侧拆分。