У меня есть проект Matlab, над которым я работаю в редакторе OSX TextMate. Мне нужно найти все вхождения определенного слова, скажем, "foo", которому не предшествует "." и не следует "/".
Однако я не могу найти способ поиска регулярных выражений, которые определены отрицательно, как это. Кто-нибудь знает, возможно ли искать что-то вроде "A предшествует чему-либо, кроме B"?
(TextMate используетБиблиотека регулярных выражений Oniguruma(К. Косако.)
решение1
Вам нужно использовать этот фрагмент синтаксиса:
(?=subexp) look-ahead
(?!subexp) negative look-ahead
(?<=subexp) look-behind
(?<!subexp) negative look-behind
В твоем случае,(?<!\.)foo(?!/)
решение2
^ (циркумфлекс или каретка) внутри квадратных скобок отрицает выражение. Таким образом, чтобы найти "foo", которому не предшествует "." будет:
[^.]foo