web-dev-qa-db-ja.com

Twitterハッシュタグで使用できる文字は何ですか?

Twitterクライアントを含むiOSアプリを開発する際には、ユーザーが生成したハッシュタグ(ツイート本文だけでなく、アプリ内の他の場所で作成される可能性があります)を許可する必要があります。

そのようなハッシュタグがTwitterで有効であることを確認したいので、入力した値に無効な文字がないかエラーチェックしたいと思います。ユーザーは英語を話さない国から来ている可能性があることに注意してください。

ハッシュタグを数字で始めない、特別な句読文字を使用しないなど、通常の制限を認識していますが、ハッシュタグ内で技術的に許可されているすべての追加文字(つまり国際文字)の既知のリストがあるかどうか疑問に思いました。

19
Karl White

カール、あなたが正しく指摘しているように、どの言語のどの単語も有効なTwitterハッシュタグになることができます(それがいくつかの基本的な基準を満たしている限り)。そのため、あなたが求めているのは、有効な国際単語文字のリストです。誰かがそのようなリストをどこかに編集したと確信していますが、それを使用することは、最初の目標と思われるものに到達するための最も効率的なアプローチではありません。特定のハッシュタグがTwitterで有効であることを確認します。

あなたが探しているのは、すべてのWord文字に一致する正規表現であると思いますnicode範囲内。このような表現はロケールに依存せず、Wordの一部として表示される可能性のある最新のタイポグラフィのすべての文字と一致します。

アプリを作成する言語を指定しなかったため、言語固有の実装についてはサポートできません。ただし、基本的なアプローチは次のとおりです。

  1. 角かっこ式または文字クラスのいずれかが、お使いの言語でnicode文字範囲をすでにサポートしているかどうかを確認してください。はいの場合は、それらを使用してください。

  2. 言語のサポートを有効にできる正規表現修飾子があるかどうかを確認してくださいnicode文字範囲

最近のほとんどの言語は、かなり類似した方法で正規表現を実装しており、それらの多くはPerlから多用しているため、次の2つの例で正しい方向に進むことを願っています。

Perl:

POSIXブラケット式を使用します(例:[[:alpha:]][[:allnum:]][[:digit:]]など)文字クラスと比較して、一致させたい文字をより細かく制御できるため(例:\w)。

使用する /uパターンマッチング時にUnicodeサポートを有効にする修飾子。この修飾子の下では、ASCIIプラットフォームは事実上Unicodeプラットフォームになります。したがって、たとえば、\wは、Unicodeの100,000を超えるWord文字のいずれかに一致します。

詳細については、Perlのドキュメントを参照してください。

ルビー:

非ASCII文字を含むPOSIXブラケット式を使用します。たとえば、/\d /はASCII 10進数(0-9);にのみ一致しますが、/ [[:digit:]] /はUnicodeNdカテゴリの任意の文字に一致します。

詳細については、Rubyドキュメントを参照してください:

例:

ハッシュタグのリストを指定すると、次の正規表現は、Word文字(国際的なWord文字を含む)で始まり、その後に別のWord文字、数字、またはアンダースコアが続くすべてのハッシュタグに一致します。

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

    /^#[[:alpha:]][[:alnum:]_]+$/       # Ruby
7
UmkaDK

Twitterでは、文字、数字、およびアンダースコアを使用できます。

APIを介してツイートを生成することでこれを確認しました。たとえば、ツイート

ハッシュタグテスト#foo [bar

その結果、「#foo」はハッシュタグとしてマークされ、「[bar」はフォーマットされていないテキストになりました。

4
nickh

Golangで実装するのと同じ問題がありました。 [[:alpha:]]で許可されている文字は英語のアルファベットのみであり、他の言語の文字にはこの構文を使用できないようです。代わりに、この目的で\ p {L}を使用できます。

\ p {L}での私のテストは ここ です。 *アラビア語、ヘブライ語、ヒンディー語などはまだ確認されていません。

0
simotunes

さて、初心者の場合、ハッシュタグ(## hash)に#を使用することはできません。

以下のガイドラインは Twitterのヘルプセンター から引用されています:

  • 人々は、ツイート内の関連するキーワードまたはフレーズ(スペースなし)の前にハッシュタグ記号#を使用して、それらのツイートを分類し、Twitter検索でより簡単に表示できるようにします。
  • メッセージ内のハッシュタグ付きの単語をクリックすると、そのキーワードでマークされた他のすべてのツイートが表示されます。
  • ハッシュタグは、ツイートの最初、途中、最後のどこにでも発生する可能性があります。
  • 非常に人気のあるハッシュタグ付きの単語は、多くの場合、トレンドトピックです。
    例:以下のツイートでは、@ eddieにハッシュタグ#FFが含まれていました。ユーザーはこれを「FollowFriday」の省略形として作成しました。これは、ユーザーが他の人にTwitterでフォローするように勧める毎週の伝統です。これは金曜日に表示されます。

ハッシュタグを正しく使用する:

  • パブリックアカウントでハッシュタグを付けてツイートすると、そのハッシュタグを検索した人は誰でもあなたのツイートを見つけることができます
  • #hashtagsで#spamしないでください。 1つのツイートに過度のタグを付けないでください。 (ベストプラクティスでは、ツイートごとに2つ以下のハッシュタグを使用することをお勧めします。)
  • ハッシュタグは、トピックに関連するツイートにのみ使用してください。
0