用于IIS的正则表达式重写规则之前和之后的最后一次斜杠

时间:2014-05-15 15:36:25

标签: regex rewrite iis-7.5

我一直在撞墙试图找出正则表达式的IIS重写规则 - 它应该与以下网址匹配:

  

/path1/path2/staticword/dynamic/dynamic2/dynamic3/hello.css

我需要它来提取staticword之前的路径,所以 的路径1 /路径/

然后我需要它来匹配文件名 的 hello.css

注意:只有在存在文件扩展名(.css | .js)

时才会触发此操作

我不需要中间部分。

到目前为止,我已经得到了这个:

([\s\S]*)staticword([\s\S]*)(.css|.js)

这让我得到了第一部分 - 但不是文件名。我担心我需要一个消极的后视 - 因为我们无法确定有多少路径。

由于

1 个答案:

答案 0 :(得分:0)

非常接近正确的解决方案!你只需要添加一个斜杠(/),以便在staticword之后贪婪的[\ s \ S] *匹配器捕获到最终斜杠的所有内容,然后让你自由地捕获文件名。

尝试以下正则表达式:

([\s\S]*?)staticword[\s\S]*/([\s\S]*?(.css|.js))

它将捕获以下组:

match[0] = /path1/path2/staticword/dynamic/dynamic2/dynamic3/hello.css
match[1] = /path1/path2/
match[2] = hello.css
match[3] = .css

警告:由于贪婪匹配,您需要一次测试一条路径