需要用正则表达式替换我的域mp3链接

时间:2016-08-22 19:11:55

标签: regex notepad++

我正将我网站的mp3文件主机从我的服务器移动到亚马逊。然而,复制和替换每个链接似乎不是一个聪明的方法(它需要永远,我有超过20,000个mp3文件托管);从记事本中“替换所有”功能取代了我的一些“非mp3”链接。我的链接看起来像这样

http://example.com/songs/Audio_Book/God_39_s_generals_audiobook/God_39_s_generals_audiobook.mp3

我希望将所有这些内容重新格式化为

http://audiocdn.example.com/songs/Audio_Book/God_39_s_generals_audiobook/God_39_s_generals_audiobook.mp3

到目前为止,我使用的唯一选择器是

http\:\/\/.[a-zA-Z0-9\.\/\-\_]

但这只是选择所有链接;由于我是正则表达式编程的新手,我无法弄清楚如何重新格式化它们。我需要一种聪明的方法来重新格式化这些链接。感谢

1 个答案:

答案 0 :(得分:1)

您只想在audiocdn.之后在MP3链接中插入http://

如果所有这些链接都以http://example.com/songs/开头,则表示没有正则表达式:在普通模式下将http://example.com/songs/替换为http://audiocdn.example.com/songs/

如果这些链接必须最后包含.mp3,您可以考虑使用基于正则表达式的替换:

查找内容(http://)(example\.com/songs(?:/[^\s/]*)+\.mp3)
替换为$1audiocdn.$2

<强>详情:

  • (http://) - 与文字http://匹配的第1组(如果您在s?后添加http,则还会匹配https个链接)
  • (example\.com/songs(?:/[^\s/]*)+\.mp3) - 第2组捕获:
    • example\.com/songs - 文字字符串example\.com/songs
    • (?:/[^\s/]*)+ - 一个或多个/序列,其中包含0个或更多字符,而不是空格和/
    • \.mp3 - 文字.mp3