Редактор nano. Подсветка синтаксиса, нежадный режим.
use "(\"[^\"]*?\")"
А почему мое выражение работало не так?
color red "\"([^"]|\\\")*?\""
color red "'([^']|\\')*?'"
Глючит чота видимо, и сотри его на всякий случай, вдруг он какую-нибудь загадочную семантику собой олицетворяет!
Может регулярные выражения в nano не поддерживают "нежадность"?
Может регулярные выражения в nano не поддерживают "нежадность"?как же так, ведь в примере фиджея и в моем последнем есть "нежадное" выражение *?
я, честно говоря, никогда особо этой нежадностью не пользовался.
если есть возможность, пишу так, как запостил.
есть "нежадное" выражение *?В этом случае "?" означает, что предудущее может повториться 0 или 1 раз, то есть ничего не меняет, т.к. "*" тоже 0 позволяет.
А если есть поддержка "нежадности", то сочетание "*?" уже будет истолковано особенно.
как же так, ведь в примере фиджея и в моем последнем есть "нежадное" выражение *?В примере Фиджея нежадность не имеет никакого значения, знак вопроса можно выкинуть.
Оставить комментарий
Elina74
Например, есть у меня на одной строке перловской программы две разные текстовые строкиif(col="1" or col="2"){
;
}
Хочу, чтобы строки выглядели подсвеченными.
Пишу в nanorc следующее:
syntax "perl" "\.p[lm]$"
color red "(\".*?\")"
получаю:
if(col="1" or col="2"){
;
}
а вовсе не то, что хотелось
if(col="1" or col="2"){
;
}
Это баг nano или я чего-то глубинного не понимаю в регулярных выражениях?
nano --version
GNU nano version 2.0.2 (compiled 16:27:57, Dec 22 2006)
Email: nano-editor.org Web: http://www.nano-editor.org/
Compiled options: --disable-wrapping-as-root --enable-color --enable-extra --enable-multibuffer --enable-nanorc --enable-utf8