正则表达式:如何在一个或多个单词之后匹配任何内容?

时间:2017-02-16 13:32:09

标签: regex

我需要找到并替换所有链接。但我不知道使用正则表达式代码。我有这个链接: http://sitename.com/FileID/filename.zip

我想匹配/找到这个部分:filename.zip

因此,通过这种方式,我想这样建立这样的链接:

http://sitename.com/FileID/NEWWORD-filename.zip

有很多链接,所有他们的FileID都不同。所以我想只匹配文件名部分。

2 个答案:

答案 0 :(得分:1)

基本上你想要忽略所有内容直到最后一次斜杠http.*\/(.*) 如果您知道有关FileID的任何规则(例如它的数字或字符串特定长度),您可以使其更精确,例如:http://sitename.com/983032/filename.zip - > http.*\d+\/(.*)

答案 1 :(得分:0)

在JS中(您可以将其改编为您使用的任何语言),您可以这样做:

var url = 'http://sitename.com/FileID/filename.zip'
var regex = /.*\/(.*)/;

var m = url.match(regex);
console.log(m[1]);

因为您需要以#sit; sitename'开头,新版本:

var regex = /http:\/\/sitename.com\/[^/]\/(.*)

其他可能的正则表达式是:

var regex = /[^/]*$/

(在这种情况下,完整匹配将是您的文件名:' filename.zip',始终只匹配网址的最后一位)

PS:有些语言/图书馆支持也是后卫,但我相信不是所有人都这样做。