背景:
我有一个与正则表达式一起使用的Url重定向系统。
具有以下格式的网址:http://www.company.com/ {任意数量的父网页} / parentX / {any page} .aspx
需要重定向到:http://www.company.com/parentY/parentX/ {page} .aspx
换句话说,所有具有直接父X和任意数量祖父母页面的页面现在都位于parentY / parentX下。
我可以轻松编写正则表达式,以匹配http://www.company.com/ {任意数量的父页面} / parentX / {any page} .aspx的URL。但是,这也会匹配我重定向到的页面(导致重定向循环)。因此,我的表达式需要与模式http://www.company.com/parentY/parentX/ {page} .aspx
不匹配有什么想法吗?
非常感谢
答案 0 :(得分:1)
#http://www.thecompany.com/(?!parentY).*/parentX/[^/].aspx#
我正在使用负前瞻断言。 (?!...)
是一个零宽度断言,可确保内部的正则表达式在此起始位置不匹配。不知道你在写什么语言,我不确定你是否可以这样做,或者它是否可以变得更加漂亮(例如,whatabout http://www.thecompany.com/parentY/parentZ/parentX
?) - 但这应该适用于你的情况在这里给出了它。