这里有正则表达式大师吗?
我试图找到答案,我接近那个: Matching strings not ending with .html 但不幸的是,它并没有满足我的需求:
在IIS 7.5上,想要重定向任何地址而不使用斜杠:
到
但不是
(2到4个字符之间的扩展名)
棘手的部分,我需要得到第一组"目录"因为它在条件中用于检查它是否存在于重写表中。 现在,我用第一组获得:((。+?)(?= / | $))
但是,要检查以下内容(如果有的话),我就会陷入困境。
我无法理解如何做到这一点......
非常感谢你的帮助!!!
编辑:
为了更清楚,这就是我想要实现的目标:
答案 0 :(得分:0)
您可以将条件转换为否定前瞻:
^([^/]+)(?!.*\.\w+$)(?!.*/$).*$
^---- 1----^^-- 2--^
请参阅a regex demo
当URL以文件扩展名结尾时,第一个将失败匹配(\w+$
将需要在字符串的末尾出现一个或多个单词字符)。
如果网址以/
结尾,则第二个预测将失败。
注意:如果您不使用正则表达式分隔符,则可能不需要在您的环境中转义/
。