我正在尝试为IIS中的重写规则编写特定的正则表达式模式,如果它匹配模式以停止处理更多规则。正则表达式检查字符串是否只包含字符的最后一个实例之后和最后一个实例之前的数字
的URL会是这个样子:
somesite.com/somepath/34343.aspx
我要看看我只有一节34343号,我可以有 somesite.com /somepath/something343.aspx
我曾尝试与模式匹配,像这样:
([0-9] *)ASPX $
但这拿起后者URL并停止处理规则,使后来的比赛AREN。不会跑。我需要他们运行后面的规则,而不是停止处理。
所以,如果有人可以帮助,我需要一些方法来检查,如果我只剩下最后结尾斜杠之后和在最后有一个数字(点)
我也试过这样:() /() 这似乎给我我想要的东西,因为它给了我分组比赛。(*):
- 完全匹配 - somesite.com/somepath/34343.aspx
- 组1 - somesite.com/somepath
- 集团2 - 34343
- 集团3- ASPX
但我不知道如何使用组2然后检查文本只有数字?
任何人都可以帮忙吗?
感谢
编辑
感谢您的答复,但是这两种模式不是为我工作。我将它们插入到IIS Url重写工具中,虽然相当精彩的测试模式选项告诉我它们匹配,但它们的规则不会触发。
<rule name="Ignore id with aspx" enabled="true" stopProcessing="true">
<match url="^(.*\/\d+\..+)$" ignoreCase="true" />
<!--OR-->
<match url="^.*\/\d+\.[^.]+$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
</rule>
或者至少它不会停止处理后续规则。
巧合的是,我说我使用的规则([0-9] *)。aspx $会触发并停止处理后续规则。
尝试['^。*/\ d + \。[^。] + $'](https://regex101.com/r/V08NkK/1) –