我需要从亚马逊网址中提取ASIN号码(10个字符的字母数字SKU)。该网址总是在这些格式:如何使用preg_match()从URL中提取数据?
http://www.amazon.com/gp/product/ASIN
http://www.amazon.com/gp/product/[text]/ASIN
http://www.amazon.com/o/ASIN
http://www.amazon.com/dp/ASIN
http://www.amazon.com/[text]/dp/ASIN
http://www.amazon.com/[text]/dp/[text]/ASIN
通常有更多的目录,以及变量,在URL中的ASIN号码后。这里是一个完整的URL为例:
http://www.amazon.com/Google-Nexus-Tablet-7-Inch-Black/dp/B00DVFLJDS/ref=sr_1_1?ie=UTF8&qid=1387937682&sr=8-1&keywords=nexus+7
我想,这也许可以使用preg_match()
做的,但我很新对正则表达式,并没有一个线索制定的表达。
这可能与preg_match()
有关吗?如果不是,解决这个问题的最好方法是什么?
UPDATE:
我已经在正则表达式阅读起来,并能修改答案时的工作ASIN是不是在URL字符串(而事实上并非如此)的末尾:
#\/([A-Za-z0-9]{10})#
我也做到了,所以在比赛前必须有一个正斜杠。
可以用'preg_match()'做。现在拿一些文章,只是学习如何做到这一点。 – zerkms
是的,这是可能的,应该不会那么困难,因为您只搜索一个不同的组。但是你仍然必须自己研究这一点 - 当你为一次具体的尝试而斗争时,随时再问一次 – kero
正如@zerkms指出的那样,这是可能的。预计你至少会在寻求帮助之前进行尝试。 –