是否可以在 TextMate 的正则表达式中使用 NOT?

Nag*_*gel 25 regex textmate

我有一个在 OSX 编辑器 TextMate 中工作的 Matlab 项目。我需要找到某个单词的所有实例,假设它是“foo”,前面没有“。” 或后接“/”。

但是,我找不到任何方法来搜索像这样负面定义的正则表达式。有谁知道是否可以搜索诸如“A 前面有 B 以外的任何内容”之类的内容?

(TextMate 使用K. Kosako的Oniguruma 正则表达式库。)

m45*_*73r 37

您想使用以下语法:

(?=subexp)         look-ahead
(?!subexp)         negative look-ahead
(?<=subexp)        look-behind
(?<!subexp)        negative look-behind
Run Code Online (Sandbox Code Playgroud)

在你的情况下, (?<!\.)foo(?!/)


Bri*_*ian 15

方括号内的 ^(圆括号或插入符号)否定表达式。所以要找到前面没有“.”的“foo”。将是:

[^.]foo
Run Code Online (Sandbox Code Playgroud)

  • [stuf] 匹配字母 s,t,u,f。方括号的内容不是表达式,它们是一个列表。[^.] 不是句号。[^\.] 是任何不是反斜杠或点的东西。^ 和 - 是唯一有时在 [] 中具有特殊含义的字符 (2认同)