С начальной точки поддержки твиттера основные правила, по-видимому, заключаются в том, что хэштегам должен предшествовать пробел и останавливаться на любом пробеле или пунктуации.
Цитата из поддержки Twitter:
Проверьте ваши хэштеги на предмет наличия следующих данных:
- Есть ли какой-либо символ в хэштеге или после него?
- Если вы напишите # noican't, ваше сообщение будет классифицировано как #noican. Знаки пунктуации (,.;?! И т. Д.) Будут заканчиваться вашим хэштегом везде, где есть знаки препинания.
- Есть ли какая-либо буква перед символом?
- Если вы напишите 23 # idoittoo или слово # idoittoo, ваши твиты не будут отображаться при поиске хэштега #idoittoo. Хештеги не будут работать с буквами или цифрами перед символом #. Символ # должен иметь пробел непосредственно перед ним, чтобы он правильно отображался при поиске.
Следовательно, начальный токен #
предшествует пробел, а терминатором является любой пробел или пунктуация. « и т. Д. » в их списке знаков препинания («,.; '?! И т. Д. ») раздражает, но я продолжу копать и посмотрю, смогу ли я найти что-нибудь авторитетное на то, что еще считается пунктуацией.
Немного покопавшись, я нашел несколько интересных статей в блоге Теренса Идена ( Хештеги и неявные знания , Хэштегские стандарты ), которые свидетельствуют о том, что в Твиттере даже нет стандарт, учитывая, что программное обеспечение, которое оно разрабатывает на разных платформах, похоже, имеет разные правила того, что составляет хэштег.
Он также предоставил ссылку на библиотеку соответствия Twitter, которая имеет twitter / twitter-text-conformance / autolink.yml . Раздел hashtag
в autolink.yml имеет много случаев, соответствующих приведенным выше правилам, но также некоторые из них, которые нарушают их, по-прежнему должны быть связаны автоматически. Некоторые примеры:
- description: "DO NOT Autolink all-numeric hashtags"
text: "text #1234"
expected: "text #1234"
- description: "Autolink hashtag preceded by a period"
text: "text.#hashtag"
expected: "text.<a href=\"http://twitter.com/search?q=%23hashtag\" title=\"#hashtag\" class=\"tweet-url hashtag\">#hashtag</a>"
- description: "Autolink hashtag with full-width hash (U+FF03)"
text: "#hashtag"
expected: "<a href=\"http://twitter.com/search?q=%23hashtag\" title=\"#hashtag\" class=\"tweet-url hashtag\">#hashtag</a>"
Это всего лишь несколько примеров, которые не соответствуют основным правилам, приведенным в первой статье поддержки, и, к сожалению, yml
полон и других примеров.