#Ruby 正規表現 特定の文字列から文字列まで 抽出する方法
【名称】ほげふが
【原材料】ほげほげ、ふがふが、もげもげ
【内容量】ほげほげ(60g×100個)×7袋入り
【配送方法】ふがふが配送
【消費期限】製造日よりほげほげ日
【販売・提供者】ふがふが販売所
↑からある特定の文字列だけ抽出しようとするときの正規表現の書き方で少しハマったので紹介
####【内容量】の中身("ほげほげ(60g×100個)×7袋入り")だけ取得したいとき
#####結論
extract.rb
str = "【名称】ほげふが【原材料】ほげほげ、ふがふが、もげもげ【内容量】ほげほげ(60g×100個)×7袋入り【配送方法】ふがふが配送【消費期限】製造日よりほげほげ日【販売・提供者】ふがふが販売所"
str[/【内容量】(.*?)【配送方法】/, 1]
# 出力結果:"ほげほげ(60g×100個)×7袋入り"
###解説(ってほどのもではないですが...)
[/【内容量】(.*?)【配送方法】/, 1]
[/ここから先!という文字列(.*?)ここまで!という文字列/]
[/文字列①(.*?)文字列②/]
ってことですね。
####~, 1]
とは
引数を含まない結果を取得したい時は第二引数を1にします。
第二引数を0,あるいは指定しないと
【内容量】ほげほげ(60g×100個)×7袋入り【配送方法】
が返ってきてしまうということです。
まとめ
[/文字列①(.*?)文字列②/, 1]