正規表現で名前付きキャプチャが便利だった

これがあれば何にマッチさせているかわかるじゃん!って感動しました。

正規表現でキャプチャするときに$1で変数格納されますが、この場合何にマッチさせているのかがわかりづらいときがあります。 何より量が増えてくるとしんどいです。

使い方

(?<name>正規表現を書いてください)

サンプルです。

text =  ["塚本連平(MMJ)", "小松隆志(MMJ)", "六車俊治(テレビ朝日)"]
text.split(/\s/).map do |director|
  m = director.match(/(?<name>.*)(?<organization>.*)/)
  {
    name: m[:name],
    organization: m[:organization]
  }
end

=> [{:name=>"塚本連平", :organization=>"(MMJ)"}, {:name=>"小松隆志", :organization=>"(MMJ)"}, {:name=>"六車俊治", :organization=>"(テレビ朝日)"}]

何をやっているのかがわかりやすいです。

$1 よりも圧倒的にやりやすい。

今後とも使っていきます。