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

Subj.

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

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

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

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

1 ответ

Решение

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


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

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


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

Другие вопросы по тегам