2012-09-06 91 views
-2

背景:正則表達式匹配模式A和沒有圖案B

我有一個網址重定向系統,使用正則表達式的作品。

網址,格式爲:http://www.company.com/ {任意數量的父頁面}/parentX/{任何頁面}的.aspx

需要被重定向到:http://www.company.com/parentY/parentX/ {頁}的.aspx

換句話說,具有直接父母X和任何數量的祖父母頁面的所有頁面現在生活在parentY/parentX下。

我可以很容易地編寫一個正則表達式來匹配http://www.company.com/ {任意數量的父頁面}/parentX/{任意頁面} .aspx的URL。但是,這也會匹配我重定向到的頁面(導致重定向循環)。所以,我的表情需要不匹配模式http://www.company.com/parentY/parentX/ {該頁面} .aspx

任何想法?

非常感謝

+0

? – Arkadiy

+0

或者匹配全部並檢查您的代碼? – HappyTimeGopher

+0

-1沒有語言標籤! – Anirudha

回答

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

我使用式斷言。 (?!...)是一個零寬度斷言,確保裏面的正則表達式在這個起始位置不匹配。不知道你在寫什麼語言,我不確定你是否可以做到這一點,或者如果它可以更有趣(例如,關於http://www.thecompany.com/parentY/parentZ/parentX?) - 但這應該適用於你在這裏給出的情況。 'http:// www.company.com /`之後的負向預測:

+0

應該說 - 這是.NET – Laurence

+0

這正是我所需要的。謝謝。 – Laurence