動かざることバグの如し

殿、温めておいたバグがこちらでございます

Rubyで文字列からURLのみを削除する

やり方は以下

require 'uri'

text = <<~EOL
夏目漱石: http://www.aozora.gr.jp/index_pages/person148.html
森鴎外: https://ja.wikipedia.org/wiki/%E6%A3%AE%E9%B4%8E%E5%A4%96

EOL

URI.extract(text).uniq.each {|url| text.gsub!(url, '')}
puts text

なにをやっているの

まずURI.extract()を使ってURLを抽出する。ここで自分でゴリゴリ正規表現書かなくていいのは楽

irb(main):014:0> URI.extract(text)
=> ["http://www.aozora.gr.jp/index_pages/person148.html", "https://ja.wikipedia.org/wiki/%E6%A3%AE%E9%B4%8E%E5%A4%96"]

配列で返ってくるのでuniq()で重複を削除し、gsub()でその文字列を削除する作業をeach{}で回してるだけ

参考URL