0

好吧,基本上我有一个连接到 IRC 的 vb.net 脚本,我正在努力使它成为一个基本的聊天系统,但我遇到了一个问题。

说我收到这个:

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

我想获取特定信息以输出给用户。

我想抓住nicknamemessage

我该怎么做呢?

我考虑过使用正则表达式,但我不知道如何让正则表达式抓取message,因为它之后什么都没有。

4

2 回答 2

0

您可以使用 RegEx 获取第一个 : 和 ! 之间的所有内容。

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

然后查找最后一个#channel :和行尾之间的所有内容

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

这很简单,但应考虑到有人可能在消息中使用分号 (:)。

于 2010-06-02T03:57:11.600 回答
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 回答