regex - _实际_ Twitter 主题标签格式?不是你的正则表达式,不是他的代码——真正的?

标签 regex parsing twitter bnf hashtag

更新:如果可以,请使用 Twitter 的实体 - 他们为您和其他项目找到了它。我的情况是我只有没有实体的推文和所有额外的元数据

我花费了我认为不合理的时间来尝试找到主题标签的实际格式。

据我的搜索可以告诉 - Twitter 还没有发布一个。

我知道很多人想出了正则表达式来解析它们,但是,你的库的正则表达式不是我的库的正则表达式,也许我不喜欢你的正则表达式。

所以我问 - 是否有任何实际的官方规范? 我不想要正则表达式的答案,我想要一个 BNF 或类似的东西。或者至少 - 一个完整的分隔符列表。

额外的难点——从随机的 unicode 消息(非英语)文本中获取它们也很重要。

注意:我非常了解实体,它们不适用于我的案例(存储在数据库中的几个月的 twitter 消息)。

最佳答案

起点twitter's support基本规则似乎是主题标签必须以空格开头,并在任何空格或标点符号上停止。

引自 Twitter 的支持:

检查您的主题标签是否包含以下内容:

  • 标签内或后是否有任何符号?
  • 如果您写#noican't,您的消息将归类在#noican 下。标点符号( , . ; ' ? ! 等)将在标点出现的任何地方结束您的主题标签。
  • #symbol 前面有字母吗?
  • 如果您写了 23#idoittoo 或 word#idoittoo,您的推文将不会出现在话题标签 #idoittoo 的搜索中。主题标签不适用于 # 符号前面的字母或数字。 # 符号前面必须有一个空格,才能在搜索中正确显​​示。


  • 因此,初始 token 是 #前面有一个空格,终止符是任何空格或标点符号。他们标点符号列表中的“等”(“,.;'?!等”)很烦人,但我会继续挖掘,看看我是否能找到一些关于标点符号的权威内容。

    经过一段时间的挖掘,我发现了 Terence Eden 的一些有趣的博客文章(Hashtags and Implicit KnowledgeHashtag Standards),这些文章证明 Twitter 甚至没有一个标准,因为它在不同平台上开发的软件似乎有不同什么构成主题标签的规则。

    它还提供了一个指向 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也充满了其他例子。

    关于regex - _实际_ Twitter 主题标签格式?不是你的正则表达式,不是他的代码——真正的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8451846/

    相关文章:

    python - 删除子字符串周围的引号,但保留独立引号

    Javascript正则表达式如何实现?

    c++ - 阅读 Targa 文件。缺少深色?

    python - python正则表达式中的重复模式

    java - 将括号转换为链接 Java

    java - 在 Java 中从 HTTP 响应解析 JSON 数组

    JavaScript 身份验证 JSONString : [object Object], [object 对象]

    iphone - Twitter 如何在 iPhone 应用程序中实现新的自动完成功能?

    ios - 推特分享报错 Sharekit-ios

    python - Tweepy 的 'destroy_friendship()' 函数有批处理版本吗?