我有一个Matlab项目,正在OSX编辑器TextMate中进行。我需要找到某个单词的所有实例,比方说它是“ foo”,而不是前面都没有“”。或后接“ /”。
但是,我找不到任何方法来搜索像这样被否定定义的正则表达式。有谁知道是否可以搜索诸如“ A前面有B以外的任何东西”之类的东西?
(TextMate使用K. Kosako 的Oniguruma正则表达式库。)
我有一个Matlab项目,正在OSX编辑器TextMate中进行。我需要找到某个单词的所有实例,比方说它是“ foo”,而不是前面都没有“”。或后接“ /”。
但是,我找不到任何方法来搜索像这样被否定定义的正则表达式。有谁知道是否可以搜索诸如“ A前面有B以外的任何东西”之类的东西?
(TextMate使用K. Kosako 的Oniguruma正则表达式库。)
Answers:
您想使用以下语法:
(?=subexp) look-ahead
(?!subexp) negative look-ahead
(?<=subexp) look-behind
(?<!subexp) negative look-behind
就你而言 (?<!\.)foo(?!/)
foo
在文本开头或结尾处的出现。
方括号内的^(抑扬符或插入符号)使表达式无效。因此要找到一个不带“。”的“ foo”。将会:
[^.]foo
(^|[^.])(foo)
匹配一个额外的字符。