0

基本的に、私はIRCに接続するvb.netスクリプトを持っており、それを基本的なチャットシステムにすることに取り組んでいますが、問題が発生しました。

私がこれを受け取ったとしましょう:

:nickname!name@tw-32151D9B.hsd1.vt.comcast.net PRIVMSG #channel :message

特定の情報を取得してユーザーに出力したい。

nicknameつかみたいmessage

どうすればこれを行うことができますか?

正規表現を使用することを考えましたが、その後に何もないため、正規表現を取得する方法がわかりませんmessage

4

2 に答える 2

0

IRCが大好きです。次のコードは、生データが変数strDataにあると仮定して必要な処理を実行します。

Dim strNickName As String = String.Empty
Dim strMessage As String = String.Empty

Dim intToMessage As Integer = 0
Dim intParse As Integer = 0

intParse = InStr(strData, "!")
strNickName = Mid(strData, 2, (intStart - 2))

intToMessage = InStr(strData, "PRIVMSG #")
intParse = InStr(Mid(strData, intToMessage, (Len(strData) - intToMessage)), ":")
strMessage = Mid(strData, (intToMessage + intStart), (Len(strData) - (intToMessage + intStart - 1)))
于 2010-06-02T04:05:15.967 に答える
0

RegExを使用して、最初の:と!の間のすべてを取得できます。

(?<=:).*?(?=!)

そして最後の#channel:と行の終わりの間のすべてを探します

(?<=#channel :).*?(?=$)

これは単純ですが、誰かがメッセージでセミコロン(:)を使用する可能性があることを考慮に入れる必要があります。

于 2010-06-02T03:57:11.600 に答える