Подтвердить что ты не робот

Какие символы разрешены в твиттере хэштегов?

При разработке приложения iOS, содержащего клиент Twitter, я должен разрешить создаваемые пользователем хэштеги (которые могут быть созданы в другом месте приложения, а не только в теле твита).

Я хотел бы обеспечить, чтобы любые такие хэштеги были действительны для твиттера, поэтому я хотел бы, чтобы ошибка проверила введенное значение для недопустимых символов. Имейте в виду, что пользователи могут быть из стран, не говорящих по-английски.

Я знаю обычные ограничения, такие как не начало хэштега с номером, и никаких специальных символов пунктуации, но мне было интересно, есть ли известный список всех дополнительных символов, которые технически разрешены внутри хэштегов (т.е. международных символы).

4b9b3361

Ответ 1

Карл, как вы правильно указали, любое слово на любом языке может быть допустимым хэштегом твиттера (если он соответствует ряду основных критериев). Таким образом, вы запрашиваете список действительных символов международного слова. Я уверен, что кто-то скомпилировал такой список где-то, но использование его не было бы самым эффективным подходом к достижению того, что кажется вашей первоначальной целью: обеспечение того, что данный хэштегов действителен для твиттера.

Я считаю, что вы ищете регулярное выражение, которое может соответствовать всем символам слов в пределах диапазона Unicode. Такое выражение не будет зависеть от вашего языка и будет соответствовать всем персонажам современной типографии, которые могут появляться как часть слова.

Вы не указали, на каком языке вы пишете свое приложение, поэтому я не могу помочь вам с конкретной реализацией на языке. Однако основной подход будет следующим:

  • Проверьте, не поддерживает ли какое-либо из выражений скобок или классов символов только диапазоны символов Unicode на вашем языке. Если да, то используйте их.

  • Проверьте, существует ли модификатор regex, который может поддерживать поддержку диапазона символов Unicode для вашего языка.

Большинство современных языков реализуют регулярные выражения довольно схожим образом, и многие из них сильно заимствуют у Perl, поэтому, надеюсь, следующие два примера приведут вас к правильному пути:

Perl:

Используйте выражения скобок POSIX (например: [[:alpha:]], [[:allnum:]], [[:digit:]] и т.д.), поскольку они дают вам больший контроль над символами, которые вы хотите сопоставить, по сравнению с классами символов (например: \w).

Используйте модификатор /u, чтобы включить поддержку Unicode при сопоставлении шаблонов. В рамках этого модификатора платформа ASCII фактически становится платформой Unicode; и, следовательно, например, \w будет соответствовать любому из более чем 100 000 символов слова в Юникоде.

Подробнее см. документацию Perl:

Ruby:

Используйте выражения POSIX-скобки, поскольку они включают символы, отличные от ASCII. Например, /\ d/соответствует только десятичным разрядам ASCII (0-9); тогда как /[[: digit:]]/соответствует любому символу в категории Unicode Nd.

См. документацию по Ruby для получения дополнительной информации:

<сильные > Примеры:

Учитывая список хэштегов, следующее регулярное выражение будет соответствовать всем хэштегам, начинающимся с символа слова (включая символы международного слова), за которым следует другой символ слова, число или знак подчеркивания:

    m/^#[[:alpha:]][[:alnum:]_]+$/u     # Perl

    /^#[[:alpha:]][[:alnum:]_]+$/       # Ruby

Ответ 2

Twitter позволяет использовать буквы, цифры и символы подчеркивания.

Я проверил это, создав твиты через свой API. Например, твитирование

Тест тэга hash #foo [bar

привело к тому, что "#foo" помечен как хэш-тег, а "[bar" - это неформатированный текст.

Ответ 3

Ну, для стартеров вы не можете использовать # в хэштеге (## хэш).

Ниже приводятся приведенные ниже рекомендации Центр помощи Twitter:

  • Люди используют символ хэштега # перед соответствующим ключевым словом или фразой (без пробелов) в своих твиттерах, чтобы классифицировать эти твиты и помогать им легче показывать в Twitter-поиске.
  • Нажав на hashtagged word в любом сообщении, вы увидите все другие твиты, отмеченные этим ключевым словом.
  • Hashtags может происходить где угодно в Tweet - в начале, середине или в конце.
  • Хатшаггские слова, которые становятся очень популярными, часто обсуждаются. Пример. В приведенном ниже тексте @eddie включил hashtag #FF. Пользователи создали это как стенографию "Follow Friday", еженедельную традицию, когда пользователи рекомендуют людям, чтобы другие следовали в Twitter. Вы увидите это по пятницам.

Использование хэштегов правильно:

  • Если вы читаете хэштег в общедоступной учетной записи, любой, кто выполняет поиск этого хэштега, может найти ваш текст Tweet
  • Не #spam # С#hashtags. Не перечеркивайте один твит. (Рекомендации рекомендуют использовать не более двух хэштегов в твиттере.)
  • Использовать хэштеги только в твитах, относящихся к теме.

Ответ 4

Только буквы и числа могут быть частью хэштегов. Если символ, отличный от этого, следует за ведущим # и буквой или номером, хештег будет обрезаться в этой точке.

Я бы рекомендовал, чтобы ваш пользовательский интерфейс указал это пользователю, изменив цвет текста поля ввода, если пользователь вводит что-либо, кроме буквы или цифры.