2014-01-16 32 views
0

這裏是我的測試列表:構建與字符串1開始,但包含字符串並沒有結束正則表達式

compiz 
compizconfig-settings-manager 
compiz-fusion-bcop 
compiz-plugins-default 
compiz-plugins-main-default 
compizconfig-backend-gconf 
compiz-corecompiz-gnome 
compiz-plugins-extra 
compiz-plugins-main-dev 
compizconfig-backend-kconfig 
compiz-dev 
compiz-plugins 
compiz-plugins-main 

我正則表達式的小白和嘗試匹配compiz-*(?!-dev)
任何與compiz-但沒有按」開始t結束於-dev

我使用http://www.regexr.com/來測試我的字符串,我迷路了。

^compiz 

只匹配compiz但是沒有跟在它之後。我得到(?!-dev)應該排除-dev的結尾,但是如何告訴它在字符串後繼續?

^compiz(!?-dev) 

只匹配compiz-dev

如何,即使意義!?應該說排除?

回答

1

你的正則表達式應該如下:

^compiz(?!.*-dev$).* 

例子:http://regex101.com/r/dB9iE6

+0

他說,這已經開始與'的Compiz-'。你錯過了'-'。 – Barmar

+1

這也排除了'compiz-foo-dev-bar',即使它不以'-dev'結尾。 – Barmar

+0

@Barmar - 我已經編輯了模式以包含'$'(字符串的結尾),所以負向查找只匹配字符串的末尾。現在我認爲應該是OP要求的,但是他的問題有點令人困惑。 – MElliott

相關問題