-2

背景:

我有一个使用正则表达式的 URL 重定向系统。

URL 格式为:http: //www.company.com/ {任意数量的父页面}/parentX/{任意页面}.aspx

需要重定向到: http: //www.company.com/parentY/parentX/ {页面}.aspx

换句话说,所有具有直接父 X 和任意数量的祖父页面的页面现在都位于 parentY/parentX 下。

我可以轻松地编写一个正则表达式来匹配一个 URL 到http://www.company.com/ {任意数量的父页面}/parentX/{任意页面}.aspx。但是,这也将匹配我重定向到的页面(导致重定向循环)。所以,我的表达式需要不匹配模式http://www.company.com/parentY/parentX/ {the page}.aspx

有任何想法吗?

非常感谢

4

1 回答 1

1
#http://www.thecompany.com/(?!parentY).*/parentX/[^/].aspx#

我正在使用否定的前瞻断言。 (?!...)是一个零宽度断言,可确保内部的正则表达式在此起始位置不匹配。不知道你用哪种语言写作,我不确定你是否可以做到这一点,或者它是否可以变得更好(例如,怎么样 http://www.thecompany.com/parentY/parentZ/parentX?) - 但这应该适用于你在这里给出的情况。

于 2012-09-06T18:20:05.877 回答