2016-04-11 50 views
1

我有一個如下所示的URL模式:^foo\/(?P<prefix>[a-z]+)\/bar\/$正則表達式的字符序列不等於

我需要中間的字符序列與另一個字符序列不同,比如說ab

foo/somestring/bar/foo/abcde/bar/應該匹配,但foo/ab/bar/不應該。

我來到儘可能^foo\/(?P<prefix>(?!ab)[a-z]+)\/bar\/$,但不符合foo/abcde/bar/

回答

1

你忘記了有關限制的負面前瞻值,直到/

^foo\/(?P<prefix>(?!ab\/)[a-z]+)\/bar\/$ 
         ^^ 

regex demo

如果使用(?!ab),它禁止匹配與ab開始值。添加尾隨邊界使其不允許任何等於負值預測範圍內的值。