我正在尝试匹配6个或6个以上级别或子路径的网址
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)
...匹配level1(demo)
但是,当我尝试将网址与六个或更多级别匹配时,它似乎不起作用。
^http:\/\/([a-zA-Z\.-]*)\W(\b\w+\b){6,}
(demo)
答案 0 :(得分:2)
答案 1 :(得分:1)
我认为这就是你想要的:
^http://([a-zA-Z.-]+)/(?:[^/]+/){6,}.*$
这匹配六个或更多级别,这就是你在问题中所说的。但是在问题的标题中,你说它“超过六个”。如果这是您真正想要的,请将量词从{6,}
更改为{7,}
。
在旁注中,正斜杠(/
)在正则表达式中没有特殊含义,并且不需要进行转义。 Rubular迫使你逃避斜线,因为它是用作正则表达式分隔符的东西。 Nutch使用Java的内置正则表达式,所以你应该使用相同风格的测试器,如this one。