3

我正在使用 MATLAB regexp(),我正在尝试找到一个正则表达式,它只匹配包含Cyto但不包含CytoBlue. 我的问题是文件名看起来像Texture_Variance_Cyto_4_90and Texture_Variance_CytoBlue_4_90,或者HIST_9BinsHistBin7_Cytoand HIST_9BinsHistBin7_CytoBlue

如果我只是尝试匹配Cyto,我还会捕获所有包含CytoBlue. 如果我尝试匹配Cyto_,我会错过Cyto最后一个元素所在的文件名。我想我需要一些“匹配 _ 或字符串结尾”的东西。我试过Cyto[_\Z]了,但这不起作用,我再次错过了所有以 . 结尾的元素Cyto

4

3 回答 3

1
Cyto(?=$|_)

这匹配Cyto, 后跟 ( "(?=...)") 字符串的结尾 ( "$") 或_. 请注意,下划线不会作为匹配的一部分返回。

于 2012-08-04T16:37:26.190 回答
0

使用这个正则表达式:Cyto(_.*?(?= ))?\b

于 2012-08-04T16:36:43.723 回答
0

MATLAB 支持正面和负面的前瞻,所以这应该可以工作:

Cytp(?!Blue)

...意思是“Cyto”而不是“Blue”。

于 2012-08-04T17:55:26.557 回答