regex для имени пользователя Twitter

Вы могли предоставить regex то соответствие имена пользователей Twitter?

Дополнительная премия, если пример Python обеспечивается.

42
задан icktoofay 21 February 2010 в 03:25
поделиться

4 ответа

Если вы говорите об элементе @username , который они используют в твиттере, то вы можете использовать это:

import re
twitter_username_re = re.compile(r'@([A-Za-z0-9_]+)')

Чтобы сделать каждый экземпляр HTML-ссылкой, вы можете сделать что-то вроде этого:

my_html_str = twitter_username_re.sub(lambda m: '<a href="http://twitter.com/%s">%s</a>' % (m.group(1), m.group(0)), my_tweet)
19
ответ дан 26 November 2019 в 23:21
поделиться

Да, поскольку они являются частью бизнес-уровня. Две большие выгоды:

  • возможность повторного использования
  • Возможность тестирования

Имейте в виду, что служебные функции и вспомогательные классы, скорее всего, будут одними из наиболее часто используемых компонентов всей системы. Без полного тестирования БИЦЕПС у вас действительно неприемлемый риск.

-121--3702155-

См. ручную запись для perldoc perlop в разделе «Соответствие в контексте списка»:

Если параметр/g не используется, m//в контексте списка возвращает список, состоящий из подэкспрессии, совпадающие с круглыми скобками в образце, т.е. ($1, $2, $3...)

Модификатор/g задает глобальное совпадение образца - это совпадение столько раз, сколько возможно в пределах последовательности. Поведение зависит от контекста. В контексте списка он возвращает список подстрок, соответствующих любым записывающим скобкам в регулярном выражении. Если круглые скобки отсутствуют, возвращается список всех совпадающих последовательностей, как если бы вокруг всего образца были круглые скобки.

Можно просто захватить все совпадения, назначив массиву или иным образом выполнив вычисление в контексте списка:

my @matches = ($string =~ m/word/g);
-121--936032-

В форме принимаются только символы A-Z, 0-9 и подчеркивание. Однако имена пользователей не чувствительны к регистру , поэтому можно использовать r '@ (? i) [a-z0-9_]+', чтобы правильно сопоставить все и различить пользователей.

2
ответ дан 26 November 2019 в 23:21
поделиться

Twitter недавно выпустил - открытый исходный код на различных языках, включая Java, Ruby ( gem ) и реализации кода Javascript, который они используют для поиска имен пользователей, хэш-тегов, списков и URL-адресов.

Он очень ориентирован на регулярные выражения.

11
ответ дан 26 November 2019 в 23:21
поделиться

Короче, /@([\w]+)/ работает нормально.

1
ответ дан 26 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: