ハッシュタグを投稿された文字列から判別するための正規表現を作成しています。
現在は、以下の通り、先頭に
①【半角or全角スペース】があり
②その後に【半角or全角シャープ】があり、
③次の【半角or全角スペース】があるまでの文字列
をハッシュタグと識別しています。
/[ ][##][^ ]+/
しかし、これだと、以下のような投稿内容がハッシュタグのみの場合の先頭のハッシュタグが識別できません。
#そろそろ冬だね #みかん食べようよ #家族団欒
なので、①の部分を【半角or全角スペース】がある、または【テキストの頭】という条件にしたいのですが、その場合、前述の正規表現をどう変更すれば良いのでしょうか??
【追記】
発生したエラー
Processing by CommentsController#create as JS Parameters: {"utf8"=>"✓", "authenticity_token"=>"f7WmhzeqykQ5m4PP0i+3FfiU6NMOVzPX98rL+hclJIqtp+Rc9em7OywPX9QWcQiARnMH2uWb4mLQHxU865EFcQ==", "comment"=>{"text"=>"#hash #hash1 #hash2 ", "user_id"=>"30"}, "commit"=>"投稿", "post_id"=>"62"} User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 30 ORDER BY `users`.`id` ASC LIMIT 1 Post Load (0.3ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 62 LIMIT 1 Game Load (0.3ms) SELECT `games`.* FROM `games` WHERE `games`.`id` = 5 LIMIT 1 Completed 500 Internal Server Error in 58ms (ActiveRecord: 0.9ms) NoMethodError (undefined method `gsub' for [""]:Array):
メソッド
def extraction_hashtag(string) string.scan(/(^|[ ])[##][^ ]+/).map{ |a| a.gsub(/[ ]/, "")} end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/10 10:29
2016/11/10 10:57
2016/11/10 11:04
2016/11/10 11:09