给定一个亚马逊产品 URL,可以是
http://amazon.com/gp/product/ASIN/*
http://amazon.com/*/dp/ASIN/*
http://amazon.com/dp/ASIN/*
如何从 Ruby 中的 URL 中删除 ASIN 编号?我不擅长写正则表达式。
给定一个亚马逊产品 URL,可以是
http://amazon.com/gp/product/ASIN/*
http://amazon.com/*/dp/ASIN/*
http://amazon.com/dp/ASIN/*
如何从 Ruby 中的 URL 中删除 ASIN 编号?我不擅长写正则表达式。
使用应该通过以下方式找到匹配项:
scan(/https?:\/\/(?:www\.|)amazon\.com\/(?:gp\/product|[^\/]+\/dp|dp)\/([^\/]+)/)
如果您要进行大量 URL 解析,我建议您查看Addressable::URI gem。它比使用正则表达式解析 URL 更容易维护。也看看它的模板模块,它就是为此目的而设计的。
查看可寻址主页上的示例以获取更多信息。
您还可以使用 Ruby 的内置 URI 模块,使用 获取路径path
,以及简单的字符串拆分和一些逻辑来查看哪个元素具有“ dp
”,然后获取数组中的下一个元素或“ gp
”并获取第二个以下元素。