ハッシュタグのマッチング

miyaoka
·
公開:2024/9/22
  • このあいだ書いた「ライバーの配信状況を確認するツール」を引き続き作っている

  • ホバー時にはコラボレーターをハイライトさせてるけど、同じハッシュタグがついたエントリーもハイライトさせたらいいかもなと思ったのでハッシュタグの表示もつけてみた

  • ただ、タイトル文字列からハッシュタグを抽出するにあたり、単純に /#[^\s]+/g (#から始まる非空白文字の連続)でいいだろうと思ってたら意外とそうでもなかった

  • たとえばこのようにハッシュタグが括弧で括られているケースがけっこう多い

  • ハッシュタグと括弧との間に空白が無い場合、単純なマッチだと括弧までマッチしてしまう

  • それどころかこのケースだと括弧の後ろにもスペースがないのでずっとマッチしてしまう

  • しかしYouTubeのページを見るとちゃんと期待するマッチになっている

  • 〖 〗隅付き括弧(白)という括弧にも対応している

  • wikipediaを見ると括弧として使われる文字はいろいろ多い

  • あと数字始まりの場合はナンバリングとして使われるからかハッシュタグとしてマッチしないようになっているけど、半角数字ではなく全角数字が使われてる場合でもちゃんとマッチしないような処理になっていた

  • 日本語対応だけでもめんどそうだけど、こういうのグローバルに対応しようとするとそもそもどういうケースがありうるのか分かんなくてムズそうだなーって思った


  • 結局、とりあえずマッチさせたくない文字を追加して対応した

  • このへんUnicodeの名称でParenthesisやBracketがつく文字の集合を取れば良さそうだけど、そういうのまとまってるライブラリとかあるのかどうやればいいのかよく分からない