我正在尝试修改和更新旧的Greasemonkey脚本,目的是自动为所有Amazon链接添加联属会员ID。谈到JavaScript,我是一个新手,但我通常很擅长修改任何语言的现有脚本。这里只有一条线,我无法绕过头。
我开始使用的脚本已过时,所以我不知道语法是否有问题或链接格式是否已更改。有人可以帮我理解这条线的作用,以便对其进行更改吗?
const affiliateLink = /(obidos.(ASIN.{12}([^\/]*(=|%3D)[^\/]*\/)*|redirect[^\/]*.(tag=)?))[^\/&]+/i;
答案 0 :(得分:9)
好的,你要求它:)
启动正则表达式:
/
开始小组操作:
(
搜索文本“obidos”,后跟任何单个字符
奥比多斯。
打开另一个群组运营商:
(
搜索文本“ASIN”,后跟任意12个字符
ASIN。{12}
另一组操作:
(
后跟0个或更多不是斜杠的字符:
[^ \ /] *
搜索'='字符或编码'='(%3D)的网址的群组操作:
(= |%3D)
后跟0个或更多不是斜杠的字符:
[^ \ /] *
然后斜杠(并关闭当前组),可以重复0次或更多次:
\ /)*
如果找到上一个组或者条形右侧的所有内容都匹配,则允许模式匹配:
|
匹配文本“redirect”,后跟0个或更多不是斜杠的聊天:
重定向[^ \ /] *
匹配任何单个字符,可选地使用文本“tag =”:
(标签=)?
关闭我们目前仍在其中的两组操作:
))
后跟一个或多个不是斜线的字符或&:
[^ \ /&安培;] +
关闭正则表达式:
/
答案 1 :(得分:1)
下载expresso的副本,这是一个很好的实用程序,并为所有这些东西派上用场。然后将正则表达式放入其中(在起始斜杠和结束斜杠之间的所有内容)。
我会描述它与e.c.t匹配的字符串。但它相当复杂,因为它有很多组件。您自己更容易看到它。 expresso为每种模式提供了更多的英语解释