情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

Janetterを使って日本語ハッシュタグを非表示にする方法

Janetter (13) Twitter (587) 正規表現 (4)

日本語ハッシュタグを非表示にする方法について。正規表現で指定できるNGワード機能を利用して非表示にするのですが、Janetterの公式の方法では不十分だったので、どうすればよかったのかをメモしておこうと思います。

Janetter公式の方法

Janetterの公式TwitterアカウントのTweetによると、次のようにNGワードに登録すれば日本語ハッシュタグが非表示になるとのこと。

(#|#)[\w]*[A-Za-z0-9ぁ-ヶ亜-黑]

シャープ(ハッシュ)で始まって(「(#|#)」)、直後に英数字があるかもしれないけど([\w]*)、全角文字が続くよ([A-Za-z0-9ぁ-ヶ亜-黑])という仕組みです。紛らわしいのですが、「A-Za-z0-9」がすべて全角となっているところに注意。つまり、日本語ハッシュタグを非表示というか、全角文字を含むハッシュタグを非表示と言った方が分かりやすいですね。

さて、でもこれだとうまく行かないことがあるのです。どうしてかというと、「すべての漢字」を表している「亜-黑」の部分が不十分だからです。これだけだと特定の漢字が日本語ハッシュタグとして判定されません

そこで、工夫が必要になります。

日本語ハッシュタグを非表示にする方法1

まず、一つ目の方法が、「漢字はよく分からないから、半角以外を禁止にするようにすればいい」という方式です。この場合、次のようになります。

(#|#)[\w]*[^\x01-\x7E]

最後の「[^\x01-\x7E]」だけが違います。この部分は半角文字(「\x01-\x7E」)じゃない(「^」)という意味です。こうすると、全角タグ、つまり、日本語ハッシュタグが表示されなくなります。

実は、これもJantter公式アカウントが言っていた方法で、こっちが正しいようです。

日本語ハッシュタグを非表示にする方法2

もう一つの方法は、ちゃんと日本語を指定する方法です。この場合は、次のようになります。

(#|#)[\w]*[A-Za-z0-9ぁ-ヶ一-龠]

ただ、ちょっとこれは正しいか怪しいので、参考ということにして、先ほど紹介した方を使ってください。

ひとこと

日本語ハッシュタグが無くなると、だいぶタイムラインが落ち着くような気がします。大喜利みたいのが多すぎるなぁと思う人にお勧めです。

コメント(0)

新しいコメントを投稿