2013-02-12 100 views
13

在开发包含Twitter客户端的iOS应用程序时,我必须允许用户生成的hashtags(可能在应用程序中的其他地方创建,而不仅仅是在tweet正文中)。twitter标签中允许使用哪些字符?

我想确保任何这样的井号标签对twitter有效,所以我想错误检查输入的值为无效字符。请记住,用户可能来自非英语国家。

我知道通常的限制,比如不用一个数字开始一个hashtag,也没有特殊的标点符号,但是我想知道是否有一个技术上允许在hashtags内的所有附加字符的已知列表(即国际字符)。

+1

我可以确认西里尔文你可以轻松地找到很多像俄罗斯这样的推文https://twitter.com/search?q=%23%D0%BF%D1%80%D0%B8%D0% B2%D0%B5%D1%82&src =类型 – Igor 2014-08-13 20:29:14

回答

0

那么,对于初学者,你不能在hashtag(## hash)中使用#号。

以下准则正在从Twitter's help center报价:

  • 人们使用#符号#在他们的鸣叫相关的关键字或短语(无空格)之前归类的鸣叫,并帮助他们更容易地显示在Twitter搜索。
  • 点击任何消息中的已标记词,即可显示用该关键字标记的所有其他推文。
  • Hashtags可以发生在Tweet的任何位置 - 开始,中间或结束。
  • 变得非常受欢迎的杂牌字经常是趋势主题。
    示例:在下面的Tweet中,@eddie包含#标签。用户将其创建为“Follow Friday”的简写,这是一个每周一次的传统,用户推荐其他人在Twitter上关注的人。你会在星期五看到这个。

使用#标签正确:

  • 如果您在使用公共账号哈希标签鸣叫,谁做了搜索该主题标签可能会发现你的资料Tweet
  • 不要#spam#带#hashtags。不要在单个Tweet上添加标签。 (最佳做法建议每个推文使用不超过2个哈希标签。)
  • 仅在与该主题相关的推文上使用哈希标签。
+2

感谢您的回应,但我知道指导原则。我似乎无法找到关于在标签中允许使用外国字符的明确列表。不过谢谢。 – 2013-02-13 22:58:23

3

Twitter允许字母,数字和下划线。

我通过他们的API生成推文来检查这个。例如,啁啾

散列标签测试#foo [巴

导致“#foo”被标记为一个散列标签,和“[巴”是无格式文本。

+6

你能澄清哪些字母?不知道您是否完整阅读了我的问题,但我想知道支持哪些国际字符(如果有)。 – 2013-06-22 02:14:28

6

卡尔,正如您已经正确指出的那样,任何语言的任何词都可以是有效的Twitter标签(只要符合一些基本标准)。因此,您要求的是有效的国际字符字符列表。我确定有人在某处编制了这样的列表,但使用它并不是达到您的初始目标的最有效方法:确保给定的哈希标签对Twitter有效。

我相信,您正在寻找的是一个正则表达式,它可以匹配在Unicode范围内的所有单词字符。这样的表达不会依赖于您的语言环境,并且可以匹配现代版式中可以作为单词的一部分出现的所有字符。

您没有指定您正在编写应用程序的语言,所以我无法帮助您使用特定于语言的实现。但是,基本的做法是如下:

  1. 检查是否有支架表达式或字符类已经支持Unicode字符在你的语言范围。如果是,然后使用它们。

  2. 检查是否存在可启用的正则表达式修饰符Unicode字符范围支持您的语言。

大多数现代语言实现正则表达式在一个相当类似的方式和他们中的很多在Perl大举借贷,所以我希望下面的两个例子将让你在正确的轨道上:

的Perl:

使用POSIX括号表达式(如:[[:alpha:]][[:allnum:]][[:digit:]]等),因为它们可以让您对您要匹配的字符的控制,相比于字符类(如:\w)。

使用/u修饰符可在模式匹配时启用Unicode支持。在这个修改器下,ASCII平台有效地变成了Unicode平台;因此,例如,\w将匹配Unicode中超过100,000个单词字符中的任何一个。

见Perl文档的详细信息:

红宝石:

使用POSIX括号表达式,因为它们包含非ASCII字符。例如,/ \ d /只匹配ASCII十进制数字(0-9);而/ [[:digit:]] /匹配Unicode Nd类别中的任何字符。

见Ruby文档的详细信息:

例子:

鉴于主题标签的列表,下面的正则表达式将匹配以一个字开头的井号标签字符(包括国际单词字符),后跟另一个单词字符,数字或下划线:

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

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

只允许字母和数字成为哈希标签的一部分。如果除这些字符之外的其他字符跟在前导#和字母或数字之后,此时标签将被截断。

如果用户输入字母或数字以外的任何内容,我会建议您的用户界面通过更改输入字段的文本颜色来向用户指明此内容。

相关问题