1

ハッシュタグ抽出に使用している正規表現は次のとおりです

def extract_hashtags
       hashtag_regex = /\B#(\w+)/i
       text_hashtags = content.scan(hashtag_regex)
       text_hashtags.each do |tag|
         hashtags.create hashtags: tag
       end
     end

を使用して/\B#(\w+)/i、これをデータの前に残します

たとえば、抽出は「abcd」のはずですが、「--- - abcd」として保存されます

#abcd だけを抽出するには、正規表現を何に変更する必要がありますか?

投稿コンテンツ (ハッシュタグが抽出される場所) が「Hello stackoverflow #stackoverflow」のようなものである場合、「-- - stackoverflow」としてデータベースに保存されます。

4

2 に答える 2

4
test = "Hello stackoverflow #stackoverflow"
test.scan( /\B#(\w+)/i )
 => [["stackoverflow"]]

array を保存していると思いますが["stackoverflow"]、結果の文字列から、ストレージは YAML を使用して構造化データを処理していますか?

create行を変更したいだけだと思います:

text_hashtags.each do |tag|
  hashtags.create hashtags: tag[0]
end
于 2013-05-01T05:51:00.073 に答える
2

"--- -"、配列を YAML に変換するときに、Rails のデータベース層によって先頭に追加されます。"---"は YAML プレフィックスで"-"、配列の最初の要素を示します。

データベースから読み戻すと、Rails は逆変換を行います。元の配列を再構築し、ダッシュを削除します。

于 2013-05-01T05:52:22.333 に答える