我试图为重定向规则编写一个正则表达式,该规则将包含2010年到2012年的文件夹,但排除了两个非常具体的页面slu ..我的网址设置如下:
/ 2016/09/18 /我的页段塞/
这两页是:
/ 2011/04/11 /一些页/ / 2012/06/15 /另一页-2 /
我有类似^ / 2010 | 2011 | 2012 /.*的内容,它匹配那些年份开始的所有子目录,不知道如何为这些页面slu to做例外。
我可能需要一个负面的预测,比如(?!some-page | another-page-2),但不知道如何设置它。
答案 0 :(得分:1)
为什么不写两个正则表达式?我的意思是,如果你想要,
^\/201[012]\/\d*\/\d*\/(?!(some-page|another-page-2))
对这些字符串中的任何一个做出否定的期待。
你必须非常具体地说明匹配字符串以及它们的页面位置。因为你需要确保像.*
这样的其他东西不能吃掉你想要处理的东西。因此,您需要指定目录,以便它必须跟在slug页面后面,然后执行否定前瞻。你会注意到它会停止工作,如果你做.*
(负向前瞻)这样的事情,因为.*
会贪婪地匹配所有内容然后它会跟随$
所以一切都很好而负面匹配不会打折字符串。
答案 1 :(得分:0)
所以这对任何有兴趣的人都有用:
^/(?!.*slug1/|.*slug2/)(?:2010|2011|2012)(.*)$
真正帮助我找到正确答案的是这个网站,可让您轻松测试正则表达式:https://www.debuggex.com/