2012-11-29 59 views
1

例如,對於一個字符串:正則表達式 - 結合貪婪和懶惰模式

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

我想要得到「B」和「C」,這是前第一「主題」的字符串值的值。

如果我使用:.+/(.+)/(.+)/topic/(.+),我會得到「e」和「f」。我知道這是貪婪的模式,所以它匹配第二個「主題」。但是,如果我更改爲懶惰模式,如.+?/(.+?)/(.+?)/topic/(.+),它仍然無法正常工作。

回答

0

我傾向於使用更多的東西一樣:

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

的想法是不是匹配任何字符,你匹配到下一個斜線。括號[]定義了一個字符類,代字號~意味着'不',所以[^/]匹配除斜槓之外的所有內容。

+0

它的工作原理。使用這個「([^ /] +)/([^ /] +)/ topic /(.+)」。感謝您的快速響應。 – fkpwolf