You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式匹配Amazon URL中seller=后至&前的卖家ID?

从Amazon URL中提取卖家ID(匹配至&符号停止)

你的核心问题是当前正则的.*属于贪婪匹配,会一直匹配到URL末尾,无法在第一个&处停止。这里提供两种可靠的解决方法:

方法一:使用排除型字符集(推荐)

直接匹配除&之外的所有字符,这种方式既精准又能兼容seller是URL最后一个参数的情况:

var regex = /seller=([^&]*)/;

// 示例1:带多个参数的Amazon URL
var url1 = 'https://www.amazon.com/sp?ie=UTF8&seller=A3AQP8TDYVYCGL&asin=B0714K41PB&ref_=dp_merchant_link&isAmazonFulfilled=1&tag=odeo';
var sellerId1 = url1.match(regex)[1]; // 输出:A3AQP8TDYVYCGL

// 示例2:seller为最后一个参数的URL
var url2 = 'http://www.youtube.com/watch?seller=Ahg6qcgoay4';
var sellerId2 = url2.match(regex)[1]; // 输出:Ahg6qcgoay4
  • [^&]:表示匹配任意**不是&**的单个字符
  • *:表示匹配零个或多个上述字符,直到遇到&或者URL结尾

方法二:使用非贪婪匹配

将贪婪的.*改成非贪婪的.*?,让正则匹配到第一个&就停止:

var regex = /seller=(.*?)&/;
var url = 'https://www.amazon.com/sp?ie=UTF8&seller=A3AQP8TDYVYCGL&asin=B0714K41PB&ref_=dp_merchant_link&isAmazonFulfilled=1&tag=odeo';
var sellerId = url.match(regex)[1]; // 输出:A3AQP8TDYVYCGL

注意:这种方式仅适用于seller不是URL最后一个参数的场景,如果seller后面没有&,正则会匹配失败。

你之前误以为$&能实现停止匹配,其实$&是正则替换中的特殊变量,代表整个匹配的内容,和匹配停止逻辑无关。

内容的提问来源于stack exchange,提问作者David-Dj Bryant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:05:21