/ /繰り返しグループ正規表現URLパス、node.js - 正規表現、node.js、express

regex url path、node.js - regex、node.js、expressを繰り返します。

私は正規表現を使用してパラメータという名前の高速ルートを抽出しようとしています。

したがって、たとえば:

www.test.com/something/:var/else/:var2

私はこの正規表現で試しています:

.*/?([:]+w+)+

しかし、私は最後にマッチしたグループだけを取得しています。

誰もが両方を一致させる方法を知っていますか :var そして :var2.

回答:

回答№1は1

最初の問題は、 .*貪欲したがって、最後のものが見つかるまで、すべての一致をバイパスします。これは最初の :var バイパスされます。

しかし、あなたが探しているのは 可変数のキャプチャーグループ (@MichaelTangのおかげで)、2つの正規表現を順番に使うことをお勧めします。まず、

^(?:.*?/?:w+)+$

検出する コロン要素を含む行...

正規表現の視覚化

Debuggexデモ

...そしてその行を繰り返し検索します。

/:(w+)

これにより、コロン後のテキストがキャプチャグループ1に配置されます。

正規表現の視覚化

Debuggexデモ


回答№2の場合は1

これらは両方とも一致させる方法です。

www.test.com/something/:var/else/:var2".match(/:(w+)/g)
[":var", ":var2"]