1

例如,对于一个字符串:

http://www/host/a/b/c/topic/d/e/f/topic/last.html

我想获得“b”和“c”的值,它们是第一个“主题”之前的字符串值。

如果我使用:.+/(.+)/(.+)/topic/(.+),我会得到“e”和“f”。我知道这是贪婪模式,所以它匹配了第二个“主题”。但是,如果我更改为惰性模式,例如.+?/(.+?)/(.+?)/topic/(.+),它仍然无法正常工作。

4

2 回答 2

0

我倾向于使用类似的东西:

[^/]+/([^/]+)/([^/]+)/topic/(.+)

这个想法不是匹配任何字符,而是匹配下一个斜杠。方括号 ,[]定义了一个字符类,波浪号~, 表示“不”,因此[^/]匹配除斜线之外的所有内容。

于 2012-11-29T08:01:15.347 回答
0

用这个怎么样?

^.+?/([^/]+)/([^/]+)/topic

这是一个演示:http ://rubular.com/r/F97qwqjLRj

于 2012-11-29T08:01:20.667 回答