今さらだけど、最短マッチ
URLを解析して、特定パターンに合致する文字列を取り出したかったのです。
ここから、スラッシュで囲まれた最初のブロックの文字列…
今回の場合は hoge だけ取り出したい。
最初はこう書いてましたが。
誤.rb
url.match(/^http:\/\/hoge.com\/(.*)\//)
これだと、引っかかるのは「hoge/fuga/goods」になる(´・ω・`)
条件として指定している「/」は、一番最後のを使っている形になってますね。
違うんです、一番最初に出てきた「/」を区切りとして使いたいんです!
てなわけで、最短マッチのメタ文字を追加。
正.rb
url.match(/^http:\/\/hoge.com\/(.*?)\//)
任意の1文字の繰り返しを最短で切り上げるため、(.*)に「?」を入れます。
すると、期待通りに「hoge」だけ取れるようになりました。
デフォルトは最長マッチになっているけど、最短もよく使うので覚えておく。