#ruby-on-rails #ruby #regex #instagram #instagram-api
#ruby-on-rails #ruby #регулярное выражение #Instagram #instagram-api
Вопрос:
Другими словами, если бы я сделал вызов Instagram API и захотел записать имена пользователей, отмеченных в комментариях, и я знал, что комментарий каждый раз находится в первой строке, какой был бы наиболее точный способ записать строку (имя пользователя) после «@», которая предшествует помеченному пользователю, и заставить это выражение повторяться для известного количества сообщений.
Совпадающие символы не были бы полезны, поскольку помеченное имя постоянно меняется от публикации к публикации. Итак, если комментарий был «фотография, сделанная @JohnSmith», каков наилучший способ записать строку, непосредственно предшествующую, без известной длины или символьного значения?
Пример реализации — пользователь хочет найти отмеченного фотографа для всех фотографий на странице. На странице Instagram @coolphotographer размещено 100 фотографий, и фотограф отмечен в первой строке комментариев к каждому сообщению.
Комментарии:
1. blog.jstassen.com/2016/03/…
2. @RobbyCornelissen Я добавил ответ из вышеупомянутого блога
Ответ №1:
Вы можете попробовать следующее регулярное выражение:
(?:^|[^w])(?:@)([A-Za-z0-9_](?:(?:[A-Za-z0-9_]|(?:.(?!.))){0,28}(?:[A-Za-z0-9_]))?)
ПРИМЕЧАНИЕ: Приведенное выше регулярное выражение взято из этого блога
Спасибо @RobbyCornelissen.
Ответ №2:
Попробуйте это. Использует gsub.
«@JohnSmith».gsub(‘@’, «»)
Ответ №3:
Комментарии:
1. Это отлично работает и является кратким способом выполнить работу. Надеюсь, кто-нибудь еще сможет поддержать это, спасибо!
Ответ №4:
Попробуйте это. Использует gsub.
«@JohnSmith».split(«@»).last