好吧,基本上我有一个连接到 IRC 的 vb.net 脚本,我正在努力使它成为一个基本的聊天系统,但我遇到了一个问题。
说我收到这个:
:nickname!name@tw-32151D9B.hsd1.vt.comcast.net PRIVMSG #channel :message
我想获取特定信息以输出给用户。
我想抓住nickname
和message
我该怎么做呢?
我考虑过使用正则表达式,但我不知道如何让正则表达式抓取message
,因为它之后什么都没有。
您可以使用 RegEx 获取第一个 : 和 ! 之间的所有内容。
(?<=:).*?(?=!)
然后查找最后一个#channel :和行尾之间的所有内容
(?<=#channel :).*?(?=$)
这很简单,但应考虑到有人可能在消息中使用分号 (:)。
我喜欢 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)))