notepad++ 更改 URL

notepad++ 更改 URL

我在 Newspapers.com 上有一个帐户。手动下载图像的语法是使用示例 ID 999:

https://www.newspapers.com/download/image/?type=jpg&id=999

但是如果你尝试手动下载图像而不使用他们的特殊软件,它会给你损坏的 URL 是:

https://www.newspapers.com/image/999/

第二个链接不起作用。需要将其更改为第一个链接的布局。如何在 Notepad++ 中更改第二行以包含第一行的信息?

有时需要更改的 URL 在末尾有额外的信息。例如:

https://www.newspapers.com/image/999/?terms=randomletters 或者 https://www.newspapers.com/image/999/?terms=randomnumbers

我如何让代码删除 /999 部分之后的所有内容?

答案1

  • 启动 notepad++
  • 粘贴您要修复的链接
  • Ctrl通过+打开替换对话框H
  • 设置Find what^(.*?)(\d+)(\D*)$
  • 设置replace withhttps://www.newspapers.com/download/image/?type=jpg&id=\2
  • 启用搜索模式regular expression
  • 点击replace all

完成。工作原理:我们拥有的唯一标识符是数字组。因此,我们使用正则表达式获取整个字符串,并捕获第二个捕获组中的数字。然后,我们可以用我们知道有效的固定字符串替换整个字符串,并将数字粘贴到需要的位置。

如果您想尝试一下,我强烈推荐 regex101.com。

答案2

  • Ctrl+H
  • 找什么:https://www.newspapers.com/\K(image)/(\d+)(/\?)\S*
  • 用。。。来代替:download/$1$3type=jpg&id=$2
  • 检查环绕
  • 检查正则表达式
  • 请勿检查. matches newline
  • Replace all

解释:

https://www.newspapers.com/ : literally
\K                          : forget all we have seen until this position
(image)                     : group 1, literally "image"
/                           : a slash
(\d+)                       : group 2, 1 or more digits (ie. the id)
(/\?)                       : group 3, a slash and a question mark
\S*                         : 0 or more non space character

替代品:

download/       : literally "download/"
$1              : content of group 1, (ie. image)
$3              : content of group 3, "/?"
type=jpg&id=    : literally
$2              : content of group 2, (ie. the id)

输入:

https://www.newspapers.com/image/999/?
https://www.newspapers.com/image/999/?terms=randomletters 
https://www.newspapers.com/image/999/?terms=123456

结果:

https://www.newspapers.com/download/image/?type=jpg&id=999
https://www.newspapers.com/download/image/?type=jpg&id=999 
https://www.newspapers.com/download/image/?type=jpg&id=999

相关内容