私は正規表現を使用してパラメータという名前の高速ルートを抽出しようとしています。
したがって、たとえば:
www.test.com/something/:var/else/:var2
私はこの正規表現で試しています:
.*/?([:]+w+)+
しかし、私は最後にマッチしたグループだけを取得しています。
誰もが両方を一致させる方法を知っていますか :var
そして :var2
.
回答:
回答№1は1最初の問題は、 .*
は 貪欲したがって、最後のものが見つかるまで、すべての一致をバイパスします。これは最初の :var
バイパスされます。
しかし、あなたが探しているのは 可変数のキャプチャーグループ (@MichaelTangのおかげで)、2つの正規表現を順番に使うことをお勧めします。まず、
^(?:.*?/?:w+)+$
検出する コロン要素を含む行...
...そしてその行を繰り返し検索します。
/:(w+)
これにより、コロン後のテキストがキャプチャグループ1に配置されます。
回答№2の場合は1
これらは両方とも一致させる方法です。
www.test.com/something/:var/else/:var2".match(/:(w+)/g)
[":var", ":var2"]