🄽🄸🄺🄸🅃🄰
как безопаснее?
Daniel
дядя шутит
Daniel
но надо же понимать, какие поля вы хотите вырезать
🄽🄸🄺🄸🅃🄰
по сути по пробелу)
🄽🄸🄺🄸🅃🄰
порезать)
🄽🄸🄺🄸🅃🄰
до ## ....... ##
Daniel
если по пробелу - регулярка не нужна
Kirill
почему
вот прикинь, придет тебе не 342AB6B3061F7F6F07B3B8D9783B3188, а вида arn:aws:xxx:yyy:zzz:www/342AB6B3061F7F6F07B3B8D9783B3188
🄽🄸🄺🄸🅃🄰
регулярки понадобятся потом точно. Первично надо разбирать по пробелу, до символов '## INFO ##'. А то что потом это мясо команд. там нужно будет мне по регулрке выискивать нужные подкоманды.
🄽🄸🄺🄸🅃🄰
по списку
🄽🄸🄺🄸🅃🄰
я просто на любом языке каком писал, парсингом не занимался плотно
Kirill
по сути по пробелу)
а что ж ты вытащить пытаешься
Kirill
ну - я с парсингом поупражнялся достаточно, чтобы подтвердить фразу, что всё, что не нужно, лучше даже не парсить
🄽🄸🄺🄸🅃🄰
дата, время, хост, статус, хэш, длиная команда
Kirill
то есть - выжать максимум инфы хочешь?
🄽🄸🄺🄸🅃🄰
15/03/2018 17:00:00:022 http-7080-79 DEBUG - C7E0F9D8AFD0EA9A83B3CB023FAEF49C:/DynamicIVR : ## TRACE ## model.ivrnodes.Menu: timeout = 0 ms 15/03/2018 17:00:00:022 http-7080-79 DEBUG - C7E0F9D8AFD0EA9A83B3CB023FAEF49C:/DynamicIVR : ## DEBUG ## model.ivrnodes.Menu: result: '1' 15/03/2018 17:00:00:022 http-7080-79 DEBUG - C7E0F9D8AFD0EA9A83B3CB023FAEF49C:/DynamicIVR : ## DEBUG ## model.ivrnodes.Menu: Evaluating '_card_number_with_pin_count_more_or_equal_1' from: if (_card_number_with_pin_count >= 1) {result = true;} else {result = false;} 15/03/2018 17:00:00:022 http-7080-79 DEBUG - C7E0F9D8AFD0EA9A83B3CB023FAEF49C:/DynamicIVR : ## DEBUG ## model.ivrnodes.Menu: loading into JS engine: variable: _card_number_with_pin_count = '1' [Long] 15/03/2018 17:00:00:023 http-7080-79 DEBUG - C7E0F9D8AFD0EA9A83B3CB023FAEF49C:/DynamicIVR : ## DEBUG ## model.ivrnodes.Menu: script result: 'true'
🄽🄸🄺🄸🅃🄰
то есть - выжать максимум инфы хочешь?
в риальном времени бот будет бегать по тонне логов
🄽🄸🄺🄸🅃🄰
поэтому нужна вся инфа из строки
🄽🄸🄺🄸🅃🄰
проверять будет построчно
🄽🄸🄺🄸🅃🄰
не грепая
🄽🄸🄺🄸🅃🄰
поэтому да, нужна вся полезна информация
🄽🄸🄺🄸🅃🄰
мкеня сейчас ток логика разбора одной строки беспокоит. в структуру
🄽🄸🄺🄸🅃🄰
почему хотел через регексп, птому что если битая строка придет, можно было бы проверить, похожа ли она на маску
🄽🄸🄺🄸🅃🄰
или нет
Kirill
ну - по пробелу тут тебе не получится это адекватно побить, насколько я вижу из примера
🄽🄸🄺🄸🅃🄰
к сожалению систему писал шаман любящий травку, и в логах иногда просто текстовые сообщения проскакивают
Zver
Тут уж слишком разные строки, если полностью разбирать и регулярки использовать. А до ## и без регулярок обойтись можно.
🄽🄸🄺🄸🅃🄰
вместо форматированной по примеру выше
🄽🄸🄺🄸🅃🄰
ну вот мне до ## надо разбить
🄽🄸🄺🄸🅃🄰
strings.Fields смотреть, да?
Zver
ну вот обрезай до : ##, а потом по пробелам бей.
Zver
strings.Fields смотреть, да?
Вполне должен подойти.
🄽🄸🄺🄸🅃🄰
Вполне должен подойти.
спасибо за направление
🄽🄸🄺🄸🅃🄰
а какую нибудь простую регулярочку на "15/03/2018 17:00:00:023" можете написать. Точнее проверку, есть ли это в строке
🄽🄸🄺🄸🅃🄰
хотя лан, это уже наверное лень говорит. это не сложно , поищу)
🄽🄸🄺🄸🅃🄰
но за Fields спасибо, почитал попробовал
Илья
эмм
Илья
может substring и time.Parse?
🄽🄸🄺🄸🅃🄰
я решил еще проще
🄽🄸🄺🄸🅃🄰
strings.Contains()
🄽🄸🄺🄸🅃🄰
для отсева этого будет достаточно
🄽🄸🄺🄸🅃🄰
по " ## "
Илья
а потом найдешь в логе бинарь, в котором что-то с ## есть 🙂
🄽🄸🄺🄸🅃🄰
после тестов прототиипа внедрю регекспы , без этого врятли получится в финальной версии обойтись
freezlite
а можно type Some []Shit конвертнуть в []Shit ?
freezlite
без аппендов
Daniel
в чем проблема-то? лень самому проверить? https://play.golang.org/p/eu95OFffjSf
freezlite
а как заставить reflect.DeepEqual возвращать true на разных типах но на одни underlying типах ?
Daniel
возможно, что и никак
heavycharged
Это же не правильно, возвращать true на разных типах, но на одних underlying типах.
heavycharged
Кажется, только свой враппер писать, и конвертить это дело в основной (underlying) тип.
freezlite
а как правильно получить текущее время, только с обнуленными минутами секундами, т.е оставить только дату правильно?
freezlite
эти задачи с датами периодически раз в год сплывают
freezlite
и успешно забываются
freezlite
воспользовался testify сравнил 2 слайса с поинтерами и датой
freezlite
заглючил на дате, пишет что не совпадает а разница пустая
Илья
Time round
freezlite
это же python
freezlite
*НЕ python
freezlite
Round нужно потом еще указывать что раундить то
Илья
Тем не менее, у time.Time есть метод Round
.
Есть ли какая то разница между request.PostForm.Get() и request.PostFormValue() в net/http?
.
Еще такой вопрос
.
Как можно реализовать функцию, которая принимает любое количество указателей и по ним передает значения? пробовал по типу func check(data ...*string) {} , но чет не получилось
.
я и не ошибку то описываю
Aleksandr
я и не ошибку то описываю
а было бы неплохо описать
.
Не получилось потому что ничего не передает
.
...string это тупо слайс
Aleksandr
Не получилось потому что ничего не передает
тогда демку на playground с демонстрацией. ее тебе исправят до рабочего состояния
.
Ну вот, допустим https://play.golang.org/p/3J4bVjHIIUf
.
Я пробовал так
.
Я хочу реализовать по типу того, как делает Scan в database/sql - передаешь указатели на переменные, оно туда записывает значения
Artem
package main import ( "fmt" ) func check(data ...*string) { someText := "hi" for i := range data { *data[i] = someText } } func main() { var a, b string check(&a, &b) fmt.Println("Values: ", a, b) }
Artem
*data[i] = someText ключевая строка
.
Спасибо
.
Теперь понятно