フラグなしの正規表現と同じ戻り値を持つString.match
、またはそれ以上のものを見てください。RegExp.exec
String.match
g
返された配列には、最初の項目として一致したテキストがあり、次に、キャプチャされたテキストを含む、一致したキャプチャ括弧ごとに 1 つの項目があります。
つまり、丸括弧¹ の間のグループがキャプチャ グループになります。完全一致のみが必要な場合は、次を使用できます。
var match = req.url.match(/^\/user\/.+/)[0];
console.log(match); //logs: "/user/jane"
これにより、一致全体が ( index で0
) 抽出され、変数に返されますmatch
。残りの配列は破棄されます。
注: 正規表現が一致しない可能性がある場合は、エラーを防ぐために完全な一致を抽出する前に、一致を返すかどうかをテストする必要があります。
var match = req.url.match(/^\/user\/.+/);
if (match !== null) {
match = match[0];
console.log(match); //"/user/jane"
} else {
console.log("no match");
}
いじり回すためのライブデモは次のとおりです。
この場合は違いがないため、キャプチャ グループを削除しました。実際には問題ではなく、マイクロ最適化にすぎません。
正規表現のキャプチャ グループ/後方参照の詳細については、こちらを参照してください。
¹ 常にそうであるとは限りません。非キャプチャ グループにする修飾子 (
?:
)、先読み、後読みなどがありますが、これらはトピック外です。これらの詳細については、上記のリンク先のサイトを参照してください。