基本上我有一个连接到IRC的vb.net脚本,我正在努力使它成为一个基本的聊天系统,但我遇到了一个问题。
说我收到了这个:
:nickname!name@tw-32151D9B.hsd1.vt.comcast.net PRIVMSG #channel :message
我想抓取特定信息输出给用户。
我想抓住nickname
和message
我该怎么做呢?
我考虑过使用正则表达式,但我无法弄清楚如何使正则表达式获取message
,因为之后什么都没有。
答案 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)))