-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/ {ページ}.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 に答える