0

6つ以上のレベルまたはサブパスを持つURLを照合しようとしています

http://www.domain.com/level1/level2/level3/level4/level5/level6/level7/level8/level9/level10/level11/level12.html

表現を思いついた

^http:\/\/([a-zA-Z\.-]*)\W(\b\w+\b) 

...レベル1に一致(デモ

ただし、6つ以上のレベルのURLを照合しようとすると、機能しないようです。

^http:\/\/([a-zA-Z\.-]*)\W(\b\w+\b){6,}

デモ

4

2 に答える 2

2

次のことを試してください。

^http:\/\/([a-zA-Z\.-]*)(\/[\w\.]+){6,}

http://rubular.com/r/QZlidUqheq

于 2013-03-19T16:46:41.333 に答える
1

私はこれがあなたが目指していたものだと思います:

^http://([a-zA-Z.-]+)/(?:[^/]+/){6,}.*$

これは6つ以上のレベルに一致します。これは、質問で望んでいたことです。ただし、質問のタイトルで「6つ以上」と表現しました。それが本当に必要な場合は、数量詞をから{6,}に変更し{7,}ます。

ちなみに、スラッシュ(/)は正規表現では特別な意味を持たず、エスケープする必要はありません。Rubularは、スラッシュをエスケープするように強制します。これは、スラッシュが正規表現の区切り文字として使用されるためです。NutchはJavaの組み込み正規表現を使用するため、このような同じフレーバーのテスターを使用する必要があります。

于 2013-03-19T18:09:25.373 に答える