-1

ページ上のすべてのリンクをループして、それらの href 値を次のパターンと照合しています。

([^/]+)/([0-9]+)/([^/]+)

問題は、ページに 2 種類のリンク形式があることです。

1. /video/123/slug
2. /video/123

番号 1. は上記の正規表現で問題なくキャプチャされますが、2 番目は失敗します。正規表現の 3 番目の部分 (スラッグ) をオプションにして、正規表現と一致したときに両方のリンク形式が true を返すようにしたいと考えています。これを行う方法?

4

3 に答える 3

3

非キャプチャ グループの括弧内に最後のビットを置き、次を追加し?ます。

([^/]+)/([0-9]+)(?:/([^/]+))?
于 2013-07-02T18:00:48.323 に答える
2

?パターンをオプションにする量指定子を使用します。パターンの 0 回または 1 回の出現に一致します。

また、最後のスラッシュと正規表現の最後の部分を非キャプチャ グループにグループ化する必要があります。

([^/]+)/([0-9]+)(?:/([^/]+))?
于 2013-07-02T18:00:29.187 に答える
0

を追加する?と、パターンの最後の部分がオプションになります。

于 2013-07-02T18:00:45.737 に答える