Автор: arktik 26.1.2012, 11:25
Делал, делал я свой хаб и уткнулся в проблему: не работает команда $SR. Вскоре определился, что дело все в Regex'ах, а именно, проверка на качество команды всегда отрицательное. Вот плохое выражение:
Код
^\$SR\s\S*\s.*\x05.*\s\d*\/\d*\x05.*\s\S*\x05\S*\|
Может кто нибудь подскажет, как мне быть с 5-ым символом ASCII? Мне кажется, что именно в нем проблема.
Заранее спасибо.
Автор: Ksan 26.1.2012, 11:33
А какое действие пятого символа? Что он собой представляет?
Может, найдётся аналог для записи попроще..
Автор: Enyby 26.1.2012, 12:12
Ksan, разделитель это. В протоколе http://mydc.ru/index.html?showtopic=915&view=findpost&p=6845.
arktik, Пиши так:
Код
sPattern = "^\$SR\s\S*\s.*"..string.char(5)..".*\s\d*\/\d*"..string.char(5)..".*\s\S*"..string.char(5).."\S*\|"
Эмс... Я что-то подумал что это на LUA. Вижу что нет. Неплохо бы указать язык. Тогда и будут предложения по записи.
Автор: arktik 26.1.2012, 13:28
Цитата(Enyby @ 26.1.2012, 20:12)
Эмс... Я что-то подумал что это на LUA. Вижу что нет. Неплохо бы указать язык. Тогда и будут предложения по записи.
Я использую Java.
Цитата(Enyby @ 26.1.2012, 20:12)
arktik, Пиши так:
Код
sPattern = "^\$SR\s\S*\s.*"..string.char(5)..".*\s\d*\/\d*"..string.char(5)..".*\s\S*"..string.char(5).."\S*\|"
Я не знал, что можно так просто вставить любой символ в паттерн. Попробую-ка я на яве так сделать.
Автор: Enyby 26.1.2012, 13:38
Если Java, то "\x05" будет достаточно. Может быть регулярное выражение составлено не верно?
ADD:
У меня получилась такая регулярка:
Код
^\$SR\s\S+\s.+\x05\d+/\d+\x05.+\s([^:]+:\d+)?(\x05\S+)?|
На основе:
Цитата
$SR [Ник_ответчика] [Результат][0x05][Свободные_слоты]/[Всего_слотов][0x05][Имя_хаба] ([IP_хаба:Порт]){[0x05][Целевой_ник]}|