2013-02-12 175 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

只允許字母和數字成爲哈希標籤的一部分。如果除這些字符之外的其他字符跟在前導#和字母或數字之後,此時標籤將被截斷。

如果用戶輸入字母或數字以外的任何內容,我會建議您的用戶界面通過更改輸入字段的文本顏色來向用戶指明此內容。

相關問題