【发布时间】:2012-08-31 15:20:12
【问题描述】:
我想将请求的 url 文件名块拆分为最多 2 个字符,然后重写为目录结构:
输入(逐行):
a.txt
ba.txt
cba.txt
dcba.txt
edcba.txt
fedcba.txt
gfedcba.txt
hgfedcba.txt
期望的输出:
a/file.txt
ba/file.txt
c/ba/file.txt
dc/ba/file.txt
e/dc/ba/file.txt
fe/dc/ba/file.txt
g/ef/dc/ba/file.txt
hg/ef/dc/ba/file.txt
实现的输出(正则表达式如下):
///a/file.txt
///ba/file.txt
//c/ba/file.txt
//dc/ba/file.txt
/e/dc/ba/file.txt
/fe/dc/ba/file.txt
g/fe/dc/ba/file.txt
hg/fe/dc/ba/file.txt
正则表达式:
([a-z]{1,2}?)??([a-z]{1,2}?)??([a-z]{1,2}?)??([a-z]{1,2})??\.txt
替换:
$1/$2/$3/$4/file.txt
我发现无法重复匹配并捕获每次迭代。
很遗憾,即使没有找到匹配的 $1 - $3,此替换文本也会写入斜线。
【问题讨论】:
-
更改了问题 - 更清楚地说,我不想匹配同一个字符两次。
标签: .net regex iis url-rewriting