- Помогите сделать регулярное выражение, allez, 11:49 , 09-Фев-16 (1)
> Прошу подсказать регулярное выражение, которое подошло-бы для моих целей. > Сколько не пытался разобраться с регуляркой, так мне и не пошло. > Ситуация следующая - есть текст (ответ АПИ, полученый через curl): > [{"id":434648634,"name":"vasya","distribution":"petya","blabla":null},{"id":63484684,"name":"maks","distribution":"anton","blabla":null}] > Мне требуется получить ID, который пренадлежит Васе. > Очень надеюсь на вашу помощь!Вам выдается ответ в формате JSON. Для его разбора проще будет использовать скрипт на Perl, Python или любом другом языке, в котором есть подключаемая библиотека для работы с JSON. Ну, или искать по запросу вида "json parsing bash regular expression". :-)
- Помогите сделать регулярное выражение, Andrey Mitrofanov, 11:54 , 09-Фев-16 (2) +1
>регулярное выражение,Эээ?? А на mips64 ассемблере не набросать JSON-парсер?... > Ситуация следующая - есть текст (ответ АПИ, полученый через curl): > [{"id":434648634,"name":"vasya","distribution":"petya","blabla":null},{"id":63484684,"name":"maks","distribution":"anton","blabla":null}] > Мне требуется получить ID, который пренадлежит Васе. > Очень надеюсь на вашу помощь! $ echo '[{"id":434648634,"name":"vasya","distribution":"petya","blabla":null},{"id":63484684,"name":"maks","distribution":"anton","blabla":null}]' \ > |jq '.[]|select(.name=="vasya").id' 434648634 $ _
- Помогите сделать регулярное выражение, f2404, 18:19 , 09-Фев-16 (3) –1
> Прошу подсказать регулярное выражение, которое подошло-бы для моих целей. > Сколько не пытался разобраться с регуляркой, так мне и не пошло. > Ситуация следующая - есть текст (ответ АПИ, полученый через curl): > [{"id":434648634,"name":"vasya","distribution":"petya","blabla":null},{"id":63484684,"name":"maks","distribution":"anton","blabla":null}] > Мне требуется получить ID, который пренадлежит Васе. > Очень надеюсь на вашу помощь!Правильно, конечно, разбирать json. Но можно использовать следующий скрипт на perl: #!/usr/bin/perl
my $user = "vasya"; my $line = '[{"id":434648634,"name":"vasya","distribution":"petya","blabla":null},{"id":63484684,"name":"maks","distribution":"anton","blabla":null}]'; if ($line =~ /\"id\":(\d+),\"name\":\"$user\"/) { my $ret = $1; print "$ret\n"; }
- Помогите сделать регулярное выражение, Pahanivo, 23:19 , 09-Фев-16 (4) +1
Что? Освоил форматирование выхлопа по столбцам? Взялся за джейсоны и эксмээльки? ))
- Помогите сделать регулярное выражение, Tendro, 10:42 , 10-Фев-16 (5) –1
> Что? Освоил форматирование выхлопа по столбцам? Взялся за джейсоны и эксмээльки? )) На вывод по столбцам забил, ибо неудобно. Сделал светодиодную панель с индикацией ошибок, и не нужно в консоль лезть. Посмотрел что ты мне отвечал ранее (гостевых ников несколько) - зачастую отправляешь в гугл, и все, при этом толком ничего не советуя, и в конце концов дискуссия заканчивается кучей сообщений не по делу, и без какого либо ответа.
- Помогите сделать регулярное выражение, Pahanivo, 10:50 , 10-Фев-16 (7)
> Посмотрел что ты мне отвечал ранее (гостевых ников несколько) я не пишу под гостями > зачастую отправляешь в гугл, и все, при этом толком ничего не советуя с глупыми вопросами туда единственная дорога
- Помогите сделать регулярное выражение, Tendro, 10:43 , 10-Фев-16 (6)
Товарищи, а возможно все-же сделать на Шелле/Баше, без сторонних программ или скриптов?
- Помогите сделать регулярное выражение, Andrey Mitrofanov, 11:34 , 10-Фев-16 (9)
> Товарищи, а возможно все-же сделать на Шелле/Баше, без сторонних программ или скриптов? Да, можно написать парсер сложного формата на шеле, но делать _этого_ не нужно ни-ког-да. Объяснять надо?
- Помогите сделать регулярное выражение, Andrey Mitrofanov, 12:37 , 10-Фев-16 (11)
>ноХотя, с другой стороны, если по собственному опыту... _Один_ раз таки надо^Wможно сделать, если и пока есть силы и время, чтобы _понимать_, почему [больше]: > делать _этого_ не нужно ни-ког-да.
- Помогите сделать регулярное выражение, Tendro, 12:21 , 10-Фев-16 (10)
Ладно, не важно, сам что-то придумаю.
- Помогите сделать регулярное выражение, Tendro, 14:19 , 10-Фев-16 (12)
Итак, внимание! Невероятный! Сложный! Тяжелый! Неповторимый скрипт! Всего на три простых действия...echo "$string" | sed 's/{/\n\r/g' | grep 'vasya' | sed 's/^.*"id"://; s/,.*$//' Вот реально, объясните мне, глупому, зачем велосипеды в виде скриптов, перла и левого софта? Ну и самое главное - объясните почему-же подобные "парсеры сложного формата на шеле" "делать _этого_ не нужно ни-ког-да"?
- Помогите сделать регулярное выражение, Pahanivo, 15:01 , 10-Фев-16 (13)
> Итак, внимание! Невероятный! Сложный! Тяжелый! Неповторимый скрипт! Всего на три простых > действия... > echo "$string" | sed 's/{/\n\r/g' | grep 'vasya' | sed 's/^.*"id"://; s/,.*$//' и опа-на ... тут же наступаем на грабли ... где гарантия что что значение vasya принадлежит нужному нам атрибуту? а если name:vasya_mudakov? > Вот реально, объясните мне, глупому, зачем велосипеды в виде скриптов, перла и > левого софта? > Ну и самое главное - объясните почему-же подобные "парсеры сложного формата на > шеле" "делать _этого_ не нужно ни-ког-да"? потому что это, !ВНЕЗАПНО!, не парсер, а поиск, причем фиксированного значения, в строке фиксированного формата (кстати, как я показал выше еще и не до конца доделанный). ну а вообще - твой пример весьма простой и редковстречающийся примитив. стоит совсем чуток увеличить сложность и все, приплыли. модифицируй свой скрип следующим образом: сделать поиск по списку (name задается не одним значение, а списком, скажем файлом), и самое главное - выдерни два атрибута (атрибуты могут идти в произвольном порядке). и вот тут ты сразу поймешь недостатки своего решения ...
- Помогите сделать регулярное выражение, Tendro, 16:32 , 10-Фев-16 (14) –1
А мне вроди как парсер и незачем, мне нужно получить нужное мне значение со стандартного вида JSON-ответа. JSON-ответ меняться не будет, другие значения мне получать тоже без надобности, мне всего навсего нужно получить id элемента с определенным именем. Я об этом, кстати, в первом сообщении писал, можешь перечитать если не веришь. Я не пишу универсальный парсер на все случаи жизни! Выше об этом сказано!Ладно, предположим что у нас есть там несколько Вась - окей, вносим малюсенькую-малюсенькую коррективу в скрипт: echo "$string" | sed 's/{/\n\r/g' | grep '"name":"vasya",' | sed 's/^.*"id"://; s/,.*$//' ииии опля, нам неважно сколько там будет в ответе Вась, ответ будет правильным.
- Помогите сделать регулярное выражение, Pahanivo, 18:26 , 10-Фев-16 (15)
> ииии опля, дорогуша, проверь на этом { "id":434648634, "name":"vasya", "distribution":"petya", "blabla":null } иногда лучше молчать чем говорить, и казаться умнее
- Помогите сделать регулярное выражение, Tendro, 19:06 , 10-Фев-16 (16) –1
Ты вообще читаешь что я пишу? ПОВТОРЯЮ - Я НЕ ПИШУ УНИВЕРСАЛЬНЫЙ ПАРСЕР!!! Есть сайт, с которого я запрашиваю информацию, ответ шаблонный, он не меняется! Да и вообще, ты хоть на одном сайте видел Json с переносом строки? Если да - приведи пример. Хотя лучше молчи... Не старайся показаться тем, сам знаешь кем...Короче, если тебе станет легче, вот: echo "$string" | sed 's/\n//g' | sed 's/{/\n\r/g' | grep '"name":"vasya",' | sed 's/^.*"id"://; s/,.*$//' схавает и твой пример, которого в жизни не увидишь. Дальше будет Json с пробелами?
- Помогите сделать регулярное выражение, Pahanivo, 20:32 , 10-Фев-16 (17)
> Ты вообще читаешь что я пишу? > ПОВТОРЯЮ - Я НЕ ПИШУ УНИВЕРСАЛЬНЫЙ ПАРСЕР!!! Есть сайт, с которого я > запрашиваю информацию, ответ шаблонный, он не меняется!а ха-ха ... > Да и вообще, ты хоть на одном сайте видел Json с переносом > строки? пацталом )) а ты когда-нибудь вообще видел текстовые структурированные данный кроме этих?
- Помогите сделать регулярное выражение, Tendro, 14:40 , 15-Фев-16 (20)
> пацталом )) а ты когда-нибудь вообще видел текстовые структурированные данный кроме этих? А мы все продолжаем умничать, при этом не приводя ни одного аргумента. Предоставь сайт, на котором АПИ отдает Json в другом формате. Вот чисто адрес сайта, и все, без очередных понтов.
- Помогите сделать регулярное выражение, Pahanivo, 16:00 , 15-Фев-16 (24)
> Предоставь сайт, на котором АПИ отдает Json в другом формате. Вот чисто > адрес сайта, и все, без очередных понтов.я выше привел пример который приводит к неработоспособности твоего начального решения, но добавлять костыли в конвейер для тебя гораздо проще чем написать железобетонный перловый регекс. для начала предоставь (слово то какое :) мне хотя бы один один сайт, который гарантировал бы что json с него завтра прилетит в том же формате, с теме же имена и позициями аргументов, без перевода строки в случайном месте и той же последовательностью используемой в качестве перевода строки, и значения аргументов внезапно не окажутся скажем в utf или вообще 1251 :)
- Помогите сделать регулярное выражение, _, 23:33 , 10-Фев-16 (18) +1
> Есть сайт, с которого я запрашиваю информацию, ответ шаблонный, он не меняется!Это самые популярные слова junior программеров перед увольнением :) Ну или по срочному фиксингу среди ночи после пьянки и вместо траха :)
- Помогите сделать регулярное выражение, Tendro, 14:42 , 15-Фев-16 (21)
> Это самые популярные слова junior программеров перед увольнением :) > Ну или по срочному фиксингу среди ночи после пьянки и вместо траха > :) Сочувствую junior’у. Вот хорошо что я не программер, и мало того, моя профессия даже с компьютерами не связана, ага, я всего навсего пользователь, который использует Линуск на десктопе...
- Помогите сделать регулярное выражение, Pahanivo, 16:09 , 15-Фев-16 (27)
> Сочувствую junior’у. > Вот хорошо что я не программер, и мало того, моя профессия даже > с компьютерами не связана, ага, я всего навсего пользователь, который использует > Линуск на десктопе...это типа такой новый и современный гендерный типаж? линуксовый бдсм с элементами фапания на собственное ЧСВ? и еще вопрос для непрограммеров - название подфорума читал? маны и доки в другой части сайта лежат.
- Помогите сделать регулярное выражение, Pahanivo, 16:17 , 15-Фев-16 (28)
а вообще конечно занятно, придти на форум, куесосить всех в течении 30 постов, мол дебилы и нихера не понимаете, а потом заявить что я сам вообще то нихера не понимаю и вообще "хорошо что я не программер". попахивает каким то клиническим слабоумием ...
- Помогите сделать регулярное выражение, Аноним, 09:49 , 11-Фев-16 (19) +1
> Итак, внимание! Невероятный! Сложный! Тяжелый! Неповторимый скрипт! Всего на три простых > действия... > echo "$string" | sed 's/{/\n\r/g' | grep 'vasya' | sed 's/^.*"id"://; s/,.*$//' > Вот реально, объясните мне, глупому, зачем велосипеды в виде скриптов, перла и > левого софта? > Ну и самое главное - объясните почему-же подобные "парсеры сложного формата на > шеле" "делать _этого_ не нужно ни-ког-да"?Затем что ты юзаешь sed и grep, а из баша просто их вызываешь. Вот затем же и перл с левым софтом. Из баша у тебя только "echo" и пайп "|", все остальное - левый софт.
- Помогите сделать регулярное выражение, Tendro, 14:47 , 15-Фев-16 (22)
> Затем что ты юзаешь sed и grep, а из баша просто их > вызываешь. Вот затем же и перл с левым софтом. Из баша > у тебя только "echo" и пайп "|", все остальное - левый > софт.Sed и grep стандартные программы, которые есть во всех системах на Линуксе. Перл то вроди тоже есть, но я его совсем не знаю, плюс его внутри Shell-скрипта не выполнить нормально, нужно отдельный скрипт под него делать (хотя тут я могу ошибаться).
- Помогите сделать регулярное выражение, Andrey Mitrofanov, 15:07 , 15-Фев-16 (23)
> Перл то вроди тоже есть, но я его совсем не знаю, > плюс его внутри Shell-скрипта не выполнить нормально, нужно отдельный скрипт под > него делать (хотя тут я могу ошибаться).Надо бы ло на "не знаю" и остановиться, уж на что я перла не знаю, но: #!/bin/sh perl -e 'system("x-www-browser \"https" . "://duckduckgo.com/?q=" . "perl+one-liner+in+shell\"")'
- Помогите сделать регулярное выражение, Pahanivo, 16:05 , 15-Фев-16 (25)
> #!/bin/sh > perl -e 'system("x-www-browser \"https" . "://duckduckgo.com/?q=" . "perl+one-liner+in+shell\"")' три процесса вместо одного? оригинально!
- Помогите сделать регулярное выражение, Pahanivo, 16:06 , 15-Фев-16 (26)
> Sed и grep стандартные программы, которые есть во всех системах на Линуксе. есть то они есть, но огорчу тебя - реализация у них отличается. и отточенный скриптяга во фряхе может не полететь под линем. > Перл то вроди тоже есть, но я его совсем не знаю, а что ты вообще знаешь? и зачем тогда пытаешься тягать и парсить данные )) > плюс его внутри Shell-скрипта не выполнить нормально, нужно отдельный скрипт под > него делать (хотя тут я могу ошибаться). ты ошибаешься в 146% своих высказываний.
- Помогите сделать регулярное выражение, Tendro, 16:17 , 15-Фев-16 (29)
>> Sed и grep стандартные программы, которые есть во всех системах на Линуксе. > есть то они есть, но огорчу тебя - реализация у них отличается. > и отточенный скриптяга во фряхе может не полететь под линем. >> Перл то вроди тоже есть, но я его совсем не знаю, > а что ты вообще знаешь? и зачем тогда пытаешься тягать и парсить > данные )) >> плюс его внутри Shell-скрипта не выполнить нормально, нужно отдельный скрипт под >> него делать (хотя тут я могу ошибаться). > ты ошибаешься в 146% своих высказываний.Ладно, мастер, хватит понтов, приведи легкое, красивое и действенное решение моей задачи, и на этом закончим.
- Помогите сделать регулярное выражение, Pahanivo, 16:20 , 15-Фев-16 (30)
> Ладно, мастер, хватит понтов, приведи легкое, красивое и действенное решение моей задачи, > и на этом закончим.вообще десяток постов назад ты кричал что "вот оно" и рамахивал конвейером с костылями ... или что? уже не работает? :) если что, то сочувствие на данном форуме изливается посетителями без меры ... - Помогите сделать регулярное выражение, Andrey Mitrofanov, 19:06 , 15-Фев-16 (31)
> Ладно, мастер, хватит понтов,Притомолся? Ай, бедный. > приведи легкое, красивое и действенное решение моей задачи, > и на этом закончим. Уже же, шесть дней и [U]двадцать семь постов[/U] тому назад, в #2 ! WTF, человече?
|