2012-08-04 109 views
2

我正在使用MATLAB的正則表達式(),我試圖找到一個正則表達式,它只匹配包含Cyto但不包含CytoBlue的文件名。我的問題是,文件名看起來要麼喜歡Texture_Variance_Cyto_4_90Texture_Variance_CytoBlue_4_90,或HIST_9BinsHistBin7_CytoHIST_9BinsHistBin7_CytoBlue正則表達式匹配_或字符串末尾

如果我只是盡力配合Cyto,我也捕捉到所有包含CytoBlue文件。如果我嘗試匹配Cyto_,我錯過了文件名,其中Cyto是最後一個元素 。我想我會需要一些說「匹配_或字符串的結尾」。我想Cyto[_\Z]但不工作,我再錯過所有以Cyto結束元素。

回答

0

使用此正則表達式:Cyto(_.*?(?=))?\b

+1

根據該文件,MATLAB使用'\ <' and '\>'word邊界,而不是'\ B'。 – 2012-08-04 17:58:22

1
Cyto(?=$|_) 

這個匹配Cyto,隨後("(?=...)")將字符串("$")或_的末尾。請注意,下劃線不會作爲匹配的一部分返回。

0

MATLAB支持正面和負面的向前看符號,所以這應該工作:

Cytp(?!Blue) 

...意爲 「的Cyto」 後面沒有 「藍」。

相關問題