1

いくつかのAmazonアイテムのASINを取得しようとしています。パターンを見つけました:ASINは常に「/dp/」の後にあります。その文字列からASIN(B003CP0V6S)を抽出するにはどうすればよいですか?私はルビーを使用しています

url = "http://www.amazon.it/Calvin-Klein-Deluxe-K0S21120--Orologio/dp/B003CP0V6S/ref=lp_1597641031_1_8?ie=UTF8&qid=1349983393&sr=1-8"
4

3 に答える 3

5
str = "http://www.amazon.it/Calvin-Klein-Deluxe-K0S21120--Orologio/dp/B003CP0V6S/ref=lp_1597641031_1_8?ie=UTF8&qid=1349983393&sr=1-8"
(match = str.match(/\/dp\/([^\/]*)/)) && match[1]
# => "B003CP0V6S"
于 2012-10-11T19:50:01.873 に答える
2

URLで使用するRuby正規表現を作成するときに代替構文を使用することを好む人もいます。これは、スラッシュ文字をすべてエスケープすると読みやすさが低下するためです。正規表現をで囲むと、%r{}スラッシュをエスケープせずに残すことができます。

  str = "http://www.amazon.it/Calvin-Klein-Deluxe-K0S21120--Orologio/dp/B003CP0V6S/ref=lp_1597641031_1_8?ie=UTF8&qid=1349983393&sr=1-8"
  (str =~ %r{/db/(.+?)/} && $1)
于 2012-10-11T20:28:25.543 に答える
0
url.split("/dp/").last.split("/", 2).first

する必要があります。

于 2012-10-11T21:35:47.313 に答える