LoginSignup
2
1

More than 5 years have passed since last update.

正規表現を使ったTwitterに似たハッシュタグ機能の実装

Last updated at Posted at 2015-08-28

環境 Java

行いたかったこと

Twitterのようにツイート内容に「#」があった場合、
ハッシュタグとして認識をして、
ハッシュタグごとのタイムラインを表示できるようにする。

実装の考え

  • 正規表現で、ハッシュタグにあたる文字列をリストに挿入をする。
  • 文字列からハッシュタグを削除する
  • タイムラインを表示するときに、ハッシュタグを文字列の後ろにいれ表示をする。

ソースコード

String text = "文字列";
String regex = "#(w*[一-龠_ぁ-ん_ァ-ヴーa-zA-Za-zA-Z0-9]+|[a-zA-Z0-9_]+|[a-zA-Z0-9_]w*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
List<String> hashtagList = new ArrayList<String>();
while (matcher.find()) {
    hashtagList(matcher.group());
}
String text = "文字列";
String regex = "#(w*[一-龠_ぁ-ん_ァ-ヴーa-zA-Za-zA-Z0-9]+|[a-zA-Z0-9_]+|[a-zA-Z0-9_]w*)";
String replacedText = text.replaceAll(regex, "");

return replacedText;

問題点

のちにハッシュタグを挿入すると、
文章中のハッシュタグの位置が文章の最後に変わってしまう。
本文中の文字列でマッチした場合、htmlタグを挿入するなどして、
より本家に近い実装をする方法を考えると良いと思う。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1