我有一个 Matlab 项目,正在 OSX 编辑器 TextMate 中处理。我需要查找某个单词的所有实例,假设它是“foo”,并且该单词前面没有“.”,后面也没有“/”。
但是,我找不到任何方法来搜索像这样被否定定义的正则表达式。有人知道是否可以搜索“A 前面除了 B 之外的任何东西”之类的内容吗?
(TextMate 使用Oniguruma 正则表达式库作者:K. Kosako。
答案1
您想使用以下语法:
(?=subexp) look-ahead
(?!subexp) negative look-ahead
(?<=subexp) look-behind
(?<!subexp) negative look-behind
就你的情况来说,(?<!\.)foo(?!/)
答案2
方括号内的 ^(脱字符或插入符号)用于否定表达式。因此,要查找前面没有“.”的“foo”,则需要:
[^.]foo