私は 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/
残りは分割の 3 番目のセクションにあるため、コードはメッセージの「http」セクションのみを取得します。
では、リンクを含むメッセージを解析するにはどうすればよいでしょうか?
1 つの方法は、最初のセクションの長さを取得して削除することです。
message = data[len(data.split(':')[1])+1:]
しかし、もっと良い方法があるはずだと感じずにはいられません。ありますか?