Как я могу получить ник и сообщение из необработанных данных IRC в vb.net? - PullRequest
0 голосов
/ 02 июня 2010

Ну, в принципе, у меня есть скрипт vb.net, подключающийся к IRC, и я работаю над тем, чтобы сделать его базовой системой чата, но я столкнулся с проблемой.

Скажите, я получаю это:

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

Я хочу получить определенную информацию для вывода пользователю.

Я хочу схватить nickname и message

Как я могу это сделать?

Я думал об использовании регулярных выражений, но я не могу понять, как заставить регулярное выражение захватывать message, так как после него ничего нет.

Ответы [ 2 ]

0 голосов
/ 02 июня 2010

Я люблю 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)))
0 голосов
/ 02 июня 2010

Вы можете использовать RegEx, чтобы получить все между первым: и!

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

, а затем ищите все между последним # каналом: и концом строки

* +1007 *

Это просто, но следует учитывать, что кто-то может использовать точку с запятой (:) в сообщении.

...