少し前に正規表現を使って特定のディレクトリのURLから一致を抽出することについて質問しました。正規表現を使用してディレクトリを除外するにはどうすればよいですか?
例:与えられたwww.domain.com/shop/widgets/match/
ソリューションは、これは"match"
は、しかし、私のファイル構造が変更されたと私は今、その代わり"pages"
除く任意のディレクトリに"match"
を返す式が必要に返す^/shop.*/([^/]+)/?$
ましたと"system"
基本的に私は01を返す式が必要です私は運なし日間苦労してきた
www.domain.com/pages/widgets/match/
www.domain.com/pages/
www.domain.com/system/widgets/match/
www.domain.com/system/
:
www.domain.com/shop/widgets/match/
www.domain.com/match/
ではなく、次のために。
おかげ
2つの正規表現を使用するだけでなく、URLに "pages"や "system"という単語が含まれているかどうかを確認することもできます。 –
'^/shop。* /([^ /] +)/?$'は 'www.domain.com/shop/widgets/match /'とまったく一致しません。しかし、それは '/ shop/widgets'にマッチします。 \/[a-z0-9 .-] + \/shop \/[^ \ /] + \ /([^ \ /] +)\/$/'を使用して、そのURLから「一致」を抽出することができますセグメントを '\ 1'とします。区切り文字としてスラッシュも使用しているので、スラッシュをエスケープしています。デリミタを必要としない場合は、スラッシュをエスケープする必要はありません。 – Graham
@jbねえ、これはいい考えです。私はそれを与えるだろう。しかし、私はそれが1つの表現でどのように行われているか見たいと思っています。 – Matt