37

vimeo URL からビデオ ID を抽出するために使用している (Stack Overflow から取得した) 正規表現パターンがあります。

var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
    var match = url.match(regExp);

http または https が指定されているかどうかに関係なく動作する必要があります。私はもう試した

var regExp = /http(s)?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;

しかし、これは http と https の両方で失敗します。

兄弟を助けてください。

4

3 に答える 3

75

追加のキャプチャ グループを作成しているため、失敗します。つまり、キャプチャ グループのインデックスは以前と同じではありません。

sキャプチャ グループを作成せずにオプションにするには、単純に を追加し?ます。かっこは必要ありません。

/https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/

非キャプチャ グループを作成するには、 を使用できますが(?:)、ここでは必要ありません。例として示すだけです。

/http(?:s)?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/
于 2013-10-24T15:14:28.397 に答える
18

「s」オプションを作成する場合は、のみを使用します

s?

つまり、https?http と https に一致します

于 2013-10-24T15:10:09.510 に答える
3

この正規表現は機能するはずです:

var regExp = /https?:\/\/(www\.)?vimeo\.com\/(\d+)/;
于 2013-10-24T15:15:26.000 に答える