2016-05-09 19 views
1

":"から始まるurlからparamsを削除する際に問題があります。私はいくつかの正規表現を作成しようとしました正規表現を使用してURLパラメータを削除する

/foo/bar 

:私は次の結果をアーカイブしたいと思います

/foo/:some_id/bar/:id 

:ように私は例のパスを持っています。私はこれを理解しました:

\/:.*?\/ 

しかし、これは削除されます:some_idでも、それでもなお葉:id部分。すべてのパラメータを削除する正規表現を変更する方法を教えてください。

+1

によって分割されます。アイテムを反復処理します。 ':'で始まらなければ、それを付け加えます。 – Sharky

+0

これはあなたを助けるはずです:https://regex101.com/r/tG0oG0/1 – Ambrish

答えて

1

正規表現では最後に/が必要です。 .*?はこれと一致しないため、/を正規表現から削除することはできません。 negated character classを使用します。

\/:[^\/]+ 

regex demo

パターンがの詳細を参照してください:

  • \/: - リテラル/:
  • [^\/]+と一致する - /[^...]として定義以外の試合1+文字否定された文字クラスのマットクラス内で定義されている文字以外のすべての文字を照合します。
+1

ありがとうソリューションと説明;) – dewastator

関連する問題