【发布时间】:2014-01-08 00:06:03
【问题描述】:
我需要从亚马逊 URL 中提取 ASIN 编号(10 个字符的字母数字 SKU)。 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() 有关吗?如果不是,解决这个问题的最佳方法是什么?
更新:
我一直在阅读正则表达式,并且能够在 ASIN 不在 URL 字符串的最末尾(这种情况很少出现)时修改答案:
#\/([A-Za-z0-9]{10})#
我也这样做了,所以比赛前必须有一个正斜杠。
【问题讨论】:
-
可以使用
preg_match()。现在看一些文章,然后学习如何做到这一点。 -
是的,这是可能的,而且不应该那么困难,因为您只搜索一个不同的组。但是您仍然需要自己研究 - 当您遇到具体尝试时,请随时再次询问
-
正如@zerkms 指出的那样,这是可能的。在寻求帮助之前,您至少应该尝试一下。
-
谢谢,我会继续努力弄清楚,一旦我有一个半合理的尝试,我会更新我的问题。
标签: php regex preg-match amazon-product-api