【发布时间】:2019-01-04 23:50:42
【问题描述】:
我需要将某个 url 与正则表达式匹配,以便在 IIS URL 重写中进行重定向。
这是 url 查询(和变体)的外观:
https://example.com/api/GetData/Version/?auth=TTXL9N5XCTCEG3IXF9
https://example.com/api/GetData/Version/?auth=TTXQQ7HWRTCLD3OM67&iid=-1
https://example.com/api/GetData/Version/?t=3&auth=TTXZRKEUROER88HRJ4&iid=-1
现在重要的是 auth 参数值恰好有 18 位数字(TTX + 15 个附加字符),后跟任何内容或类似 &... 的内容。
所以我需要一个能够识别以下内容的正则表达式:
[Anything before]auth=TTX[exactly 15 additional characters][&... after or nothing]
我当前的正则表达式实际上在经过身份验证后表现良好,但遗憾的是它并没有涵盖所有变化:
(.*)auth=\w{18}$(.*)
当我在末尾添加一个字符时,它不再匹配。
也许有人可以帮助我解决这个问题。谢谢!
【问题讨论】:
-
(.*)auth=TTX\w{15}(.*)? -
$锚匹配字符串的结尾。你的(.*)没有做太多,它总是匹配一个空字符串。您需要将其删除。 -
@CertainPerformance 是的,实际上我的描述有误。现在纠正它。当 auth 参数长于 18 个字符时,您的变体也匹配。但是当它更长时它不应该匹配,除非后面有另一个参数(实际上总是一个 & )。所以在这种情况下,它应该匹配。
标签: regex iis url-rewriting