Мне нужно извлечь ASIN-номера (10-символьный алфавитно-цифровой код) с URL-адресов Amazon. 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
Как правило, больше каталогов, а также переменных, после номера ASIN в URL. Вот полный 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()
? Если нет, то какой лучший подход к решению этой проблемы?
ОБНОВИТЬ:
Я читал в regex и смог изменить ответ на работу, когда ASIN не находится в самом конце строки URL (что редко):
#\/([A-Za-z0-9]{10})#
Я также сделал так, чтобы перед матчем была передняя косая черта.