正規表現で複数マッチ処理する方法

次のサンプルから「前後の空白行」と「ip」を一気に削除したい

削除と言えば、個人的にgsub()メソッドです。

lines = <<~EOS


dns,ip,address
dns,ip,address
dns,ip,address


EOS

【Rubyコード】

puts "加工前"
p lines
puts "-------------------------"
puts lines
puts lines.length
puts "-------------------------"

lines.gsub!(/^\s*|\s*$|ip/, "") #破壊する

puts "加工後"
puts "-------------------------"
puts lines
puts lines.length
puts "-------------------------"

(※「破壊する」とは。もとの文字列を上書き更新することです。少なくとも素人プログラマーには便利です。注意も必要です。)

ポイントがどこかわかりますね?「 | 」です。

上記のコードでは複数に同じ処理をしたい!ということですね。

Rubyではスラッシュの間に正規表現を記述します。「 / 正規表現 / 」

縦棒「 | 」で区切れば、贅沢マッチ(笑)ができます!

/ 正規表現 | 正規表現 | 正規表現 /

いままでたぶん使ったことあると思いますが、忘れてしまっています。

自分は量を管理できない寄りの人間なので、量を少なくして、見える化して、考え方で補っていきたいと思っています。
余談でした笑。

スポンサーリンク
投稿記事
スポンサーリンク
OKE2GOU