2012-01-19 129 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。 –