0

我正在尝试匹配具有 6 个或超过 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(演示

但是,当我尝试匹配具有六个或更多级别的 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,}{7,}

附带说明一下,正斜杠 ( /) 在正则表达式中没有特殊含义,不需要转义。Rubular 强制您转义斜杠,因为它用作正则表达式分隔符。Nutch 使用 Java 的内置正则表达式,因此您应该使用具有相同风格的测试器,例如这个.

于 2013-03-19T18:09:25.373 回答