Поддерживает ли механизм регулярных выражений (scintilla) notepad ++ экранирование подстрок (что-то вроде "\ Q. * [Escape-строка] () + \ E")? - PullRequest
1 голос
/ 27 января 2011

Subj.

Я имею в виду, что я не хочу вставлять десятки '\' в шаблон поиска.Очевидным способом является использование пары специальных символов в стиле Perl:

  • \ Q - заключать в кавычки (отключать) метасимволы шаблона до \ E
  • \ E - модифицировать конец регистра

Пример: \ Qtext здесь выделяется ". * [] +" Символы не имеют специального значения \ E.

Я обнаружил, что \ Q ... \ E не делает 'не работает в блокноте ++, так что мне интересно, есть ли другая возможность избежать подстроки?

1 Ответ

3 голосов
/ 27 января 2011

В настоящее время Scintilla использует PCRE, что означает, что вы можете использовать \Q и \E. Старый ответ ниже, потому что мне интересно, что исторически старые «регулярные выражения» даже не были регулярными;)


Нет. Scintilla поддерживает только минимальный синтаксис регулярных выражений. Документация даже выделяет больше неподдерживаемых частей регулярных выражений 1 .

Я бы сказал, что вы должны получить достойного редактора или заменить его другими инструментами: -)


1 Это даже включает чередование (|) и, если я не ошибаюсь, ограничивает мощность этих регулярных выражений (даже если они поддерживают обратные ссылки в совпадении) расширенным подмножеством регулярных языки. Например, я не думаю, что язык {ab, bc} может быть представлен, хотя он явно является регулярным.

...