我一直在撞墙试图找出正则表达式的IIS重写规则 - 它应该与以下网址匹配:
/path1/path2/staticword/dynamic/dynamic2/dynamic3/hello.css
我需要它来提取staticword之前的路径,所以 的路径1 /路径/
然后我需要它来匹配文件名 的 hello.css
注意:只有在存在文件扩展名(.css | .js)
时才会触发此操作我不需要中间部分。
到目前为止,我已经得到了这个:
([\s\S]*)staticword([\s\S]*)(.css|.js)
这让我得到了第一部分 - 但不是文件名。我担心我需要一个消极的后视 - 因为我们无法确定有多少路径。
由于
答案 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
警告:由于贪婪匹配,您需要一次测试一条路径