2017-03-07 13 views
1

私はここで新しいですし、正規表現も新しくなっています。URLの一部と一致する正規表現

  1. スタート/ A/PREEND /終了
    • スタート/
  2. スタート/ A:私は正規表現のルールを探しています

    は、のような文字列の最初の部分と一致するように/ xyz/preend/end

    • start/a
  3. 開始/ A/B/PREEND /エンド
    • 開始/ A/B
  4. 開始/ A/B/XYZ/PREEND /エンド
    • 開始/ a/b
  5. start/a/b/c/preend/end
    • 開始/ A/B/C
  6. 開始/ A/B/C/XYZ/PREEND /エンド
    • 開始/ A/B/C

start is static word, end is static word, xyz is static word which may or may not be there, preend is variable word, but it is always there before end, a,b,c are variable words

このような正規表現ルールは可能ですか?私は「xyz」という言葉を使ってバージョンを取得することしかできなかったし、「xyz」という単語を使わないようにすることもできましたが、普遍的なルールを理解することはできませんでした。

私はこれで始まりました: (.*)\/[^\/]*\/end$(xyz)?で実験しましたが、普遍的なルールは見つかりませんでした。

ご協力いただきありがとうございます。

+0

出力としてどのようにしたいですか?どの言語を使用していますか? –

+0

@jarlik出力は箇条書きになっています。正規表現の入力フィールドの後ろにどの言語があるのか​​よく分かりませんが、JavaScriptベースであると想定しています。 –

答えて

1

貪欲でない量限定器*?と先読みアサーション(?=...)を使用して、前方にテストすることができます。先読みでサブパターンが成功するまで、非貪欲数量詞は、文字を一つずつかかります。この方法:いずれかの場合

^start/.*?(?=/xyz/|/[^/]*/end$) 

demo

は(パターン区切り文字によっては、スラッシュをエスケープする必要があります)

+0

ありがとう@カシミール!これは仕事をした。 –

関連する問題