2012-01-19 130 views
0

我已經查找了正則表達式,但不包括,發現(?:(?!x).)*,但它不適合我,我想知道我做錯了什麼。正則表達式,但不包括

/http:\/\/www.grasshopper3d.com\/forum\/topics\/.+(?!")/ 

在下面的URL中的斜體部分是我想要的一部分,但在http://regex.larsolavtorvik.com/正則表達式測試儀告訴我這是錯的。我不明白。

HREF =」 http://www.grasshopper3d.com/forum/topics/hoopsnake-iteration-component 「 _snid =」 2985220:主題:24054

+0

你正在使用哪種語言嵌入正則表達式?有多種正則表達式的子種或方言,可能是因爲您使用的語言不支持您想要使用的方言。 –

回答

0

在這種情況下,你可以使用否定字符類拿起材料,您想:

/http:\/\/www.grasshopper3d.com\/forum\/topics\/[^"]+/ 

這個topics/後拿起任何一個或無報價

.+(?!")符號是做ñ。 egative lookahead,但.+會吃掉任何東西,包括雙引號。至少,它使得正則表達式相比於否定的字符類做額外的工作回溯。 Lookahead有它的位置 - 特別是當lookahead是一個多字符的字或類似的字。我不相信這是使用它的地方。

+0

好吧,對於簡單的事情,我只能說「不包括引號」。這似乎是工作,但我不能用它只匹配下面的.gh文件說: /http:\/\/www.grasshopper3d.com\/forum\/attachment\/download\?id= 2985220%3AUploadedFile%3A [0-9] {6} [^。+ \。gh] /意思是「不包括任何東西。」 它仍然包含.jpg文件。 「http://www.grasshopper3d.com/forum/attachment/download?id=2985220%3AUploadedFile%3A501843">01.jpg 」http://www.grasshopper3d.com/forum/attachment/download? id = 2985220%3AUploadedFile%3A506981「> SURFACE-DIAGRID-TEST.gh – user1155445

+0

是;當你想'不以'.gh''結尾時,那麼你需要消極的lookahead。 –