就我的搜索可以说 – Twitter还没有发表.
我知道很多人都提出了正则表达式来解析它们,但是,lib的正则表达式不是我的lib的正则表达式,也许我不喜欢你的.
所以我问 – 有什么实际的官方规格?我不想要一个正则表达式的答案,我想要一个BNF或类似的东西.或最低限度 – 完整的分隔符列表.
额外的困难点 – 从随机unicode消息(非英语)文本抓取它们也是重要的.
注意:我很清楚实体,它们不适用于我的情况(数据库中存储的twitter消息的几个月).
Twitter的支持引用:
>在标签中或之后有符号吗?
>如果你写#noican’t,你的消息将被分类在#noican.标点符号(,.;’?!等)将会在标点符号发生的地方结束您的主题标签.
> #symbol之前是否有任何字母?
>如果你写23#idoittoo或word#idoittoo,你的推文将不会显示在搜索的标签#idoittoo. Hashtags将不会使用#符号前面的字母或数字. #符号必须有一个空格直接在它的前面,才能在搜索中正确显示.
因此,初始令牌是#前面有一个空格,终结符是空格或标点符号.他们的标点符号列表中的“等”(),令人烦恼,但是我会继续挖掘,看看我能否找到一些权威性的标题符号.
经过一段时间的挖掘,我发现了Terence Eden(Hashtags and Implicit Knowledge,Hashtag Standards)的一些有趣的博客文章,提供了Twitter甚至没有标准的证据,因为在不同平台上开发的软件似乎有不同的规则一个主题标签
它还提供了一个到twitter / twitter-text-conformance / autolink.yml的Twitter一致性库的链接.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>"