我要发疯了。我正在尝试匹配以.html
结尾的所有字符串,而不是以/index.html
结尾的字符串。为了重写目的,你会猜到。 (我正在使用nginx)
我尝试过这样的事情:
^(.*[^(\/index)])\.html$
^(.*)(?!index)\.html$
但点似乎总是吃掉整个东西。
# Should match
/page.html
/folder/page.html
# Should not match
/page
/page/index.html
/index.html
为什么这不起作用?
答案 0 :(得分:2)
你没有说明你的,但许多正则表达式支持lookbehinds。在您的情况下可以用作:
(?<!index)\.html$
答案 1 :(得分:0)
一种保证可行的相当简单的方法:
.*([^i].*|i[^n].*|in[^d].*|ind[^e].*|inde[^x].*|index.+)\.html
这将匹配.*\.html
匹配的所有内容,除非它以index.html结尾。
答案 2 :(得分:-1)
怎么样
^([^(\/index)]*)\.html$
实际上,我认为这与/index/page.html
不匹配。