Я пишу небольшой веб-сервис, который генерирует чутье пользователей SO / SF / SU / MSO в виде изображений с различными «темами». Я считаю, что это предпочтительнее, чем использование решений HTML / JS, предлагаемых SO, поскольку они более гибкие, а также лучше работают в сигнатурах форумов.
Я получаю данные, используя неофициальный API ( Подробнее здесь ). Я могу иметь данные в HTML или JSON. Я предполагал, что JSON будет легче разобрать.
К сожалению, я не очень хорош в регулярных выражениях. и лучшее, что я могу придумать, это какая-то очень хакерская подстрока. Я считаю, что регулярное выражение должно быть самым элегантным решением, но приветствуются другие предложения.
Может кто-нибудь указать мне правильное направление для регулярного выражения, которое соответствует
ID, GravatarURL, ProfileURL, DisplayName, репутация и количество значков (бронза / серебро / золото).
FWIW Используется в проекте VB.Net (в случае, если это вообще влияет на синтаксис).
{"id":1,"gravatarHtml":"\u003cimg src=\"http://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8?s=50&d=identicon&r=PG\" height=\"50\" width=\"50\" alt=\"\"\u003e","profileUrl":"http://stackoverflow.com/users/1/jeff-atwood","displayName":"Jeff Atwood","reputation":"18,446","badgeHtml":"\u003cspan title=\"8 gold badges\"\u003e\u003cspan class=\"badge1\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e8\u003c/span\u003e\u003c/span\u003e\u003cspan title=\"57 silver badges\"\u003e\u003cspan class=\"badge2\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e57\u003c/span\u003e\u003c/span\u003e\u003cspan title=\"72 bronze badges\"\u003e\u003cspan class=\"badge3\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e72\u003c/span\u003e\u003c/span\u003e"}
или чуть более читаемый формат:
{
"id":1,
"gravatarHtml":"\u003cimg src=\"http://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8?s=50&d=identicon&r=PG\" height=\"50\" width=\"50\" alt=\"\"\u003e",
"profileUrl":"http://stackoverflow.com/users/1/jeff-atwood",
"displayName":"Jeff Atwood",
"reputation":"18,446",
"badgeHtml":"
\u003cspan title=\"8 gold badges\"\u003e\u003cspan class=\"badge1\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e8\u003c/span\u003e\u003c/span\u003e
\u003cspan title=\"57 silver badges\"\u003e\u003cspan class=\"badge2\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e57\u003c/span\u003e\u003c/span\u003e
\u003cspan title=\"72 bronze badges\"\u003e\u003cspan class=\"badge3\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e72\u003c/span\u003e\u003c/span\u003e
"
}
(NB: Стоит отметить, что если у вас нет какого-либо определенного значка, для этого значка вообще нет записи, вместо того, чтобы показывать «0»)
К сожалению, я даже не знаю, с чего начать с регулярного выражения, поэтому любая помощь, предложения или документация с благодарностью
[редактировать]
В случае, если кто-то из вас заинтересован, некоторые скриншоты таланта в процессе работы доступны здесь: Me , Jeff Atwood , Joel Spolsky
Я сделаю это общедоступным, если кому-то захочется своего?
[/ Edit]