Каков эффективный способ записать имя пользователя после «@» в instagram с помощью регулярного выражения?

#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:

Вы можете использовать следующее регулярное выражение

 /@(w )/
  

http://rubular.com/r/5bgU2DtEqX

Комментарии:

1. Это отлично работает и является кратким способом выполнить работу. Надеюсь, кто-нибудь еще сможет поддержать это, спасибо!

Ответ №4:

Попробуйте это. Использует gsub.

«@JohnSmith».split(«@»).last