如何从vb.net中的原始IRC数据中获取昵称和消息

时间:2010-06-02 03:11:35

标签: vb.net regex irc

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

说我收到了这个:

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

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

我想抓住nicknamemessage

我该怎么做呢?

我考虑过使用正则表达式,但我无法弄清楚如何使正则表达式获取message,因为之后什么都没有。

2 个答案:

答案 0 :(得分:0)

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

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

然后查找最后 #channel:和行尾

之间的所有内容
(?<=#channel :).*?(?=$)

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

答案 1 :(得分: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)))