Я попытался расширенный поиск -> заменить на \0 , но, похоже, не работает. Вместо этого он удаляет все вхождения персонажа. Может ли это быть ошибкой?

NB: замена на \n , \r\n и т.п. работает в расширенном поиске.

Я использую Notepad++ 6.4.1 Unicode.

5 ответов5

1

Попробуйте \d### (где # - одна цифра в диапазоне 0-9).

См. Escape-последовательности, поддерживаемые в расширенном режиме .

Редактировать: похоже, \d, \u, \x и т.д. Не работают должным образом, когда дело доходит до замены на NUL . Поиск работает нормально (я вставил несколько NUL с помощью шестнадцатеричного редактора), но замена не делает и просто удаляет символы.

1

Насколько я знаю, Notepad++ всегда имел проблемы с вставкой 0-символов.
Notepad++ не является исключением: большинство редакторов не могут правильно с ним работать.
Это не совсем удивительно. Работа с 0 символами - довольно нишевое приложение.

Единственный известный мне редактор Windows, который может обрабатывать нули, как и любой другой символ, - это UltraEdit.
(И у него также есть режим редактирования в шестнадцатеричном формате, так что вы так или иначе можете выполнить работу с ним.)

1

Поиски в Интернете показали, что вставка NUL в Notepad++ нетривиальна, например, см. Как вставить нулевой символ (ASCII 00) в Блокнот?

Хакерский способ заменить данный символ / символы на NUL - через Hex Editor Plugin .

  1. Перейти в шестнадцатеричный режим (через Плагины → HEX-редактор → Просмотреть в HEX или Ctrl+Alt+Shift+H)
  2. Выделите символы, которые вы хотите заменить.
    • Вы можете выделить его в столбце "Дамп" или в столбце «0 | 1 | ... | f».
  3. Ctrl+H, чтобы вызвать меню Заменить.
    • Измените "Тип данных" на "Шестнадцатеричный".
    • Выделенные символы будут отображаться в разделе "Найти что" (в виде шестнадцатеричной строки)
    • Введите "00" в поле "Заменить на" (это нулевой байт)
  4. Нажмите "Заменить" или "Заменить все".

Отказ от ответственности: я откуда-то слышал, что плагин Hex Editor глючит, но в прошлом я использовал его только изредка (он работал нормально, но ваш пробег может отличаться), поэтому я не знаю, насколько сильно он глючит.

Вы можете установить его с помощью диспетчера плагинов в Notepad++(Плагины → Диспетчер плагинов → Показать диспетчер плагинов), но вам может потребоваться установить флажок "Показать нестабильные плагины" в "Настройках" Диспетчера плагинов, чтобы плагин отображался

0

Сообщил об этом как об ошибке здесь - пожалуйста, прокомментируйте там, в надежде, что это исправлено - выглядит как возможная банка червей для меня.

Рекомендации :

0

Как вставить любое значение байта в текст:

  1. Npp -> Plugins -> Python Script -> New Script
  2. Выберите, где сохранить ... и дайте имя insert a byte (скажем)
  3. В открывшемся документе Npp вставьте этот код:

        s= notepad.prompt('Enter value, or series, in a box, e.g.: \x5Cx00 ','Insert a byte ')
        exec("a=b'{}'".format(s))
        editor.addText(a)
    
  4. Save

  5. Перезагрузите Npp

  6. Затем вы должны увидеть собственный скрипт в меню:
    Npp -> Plugins -> Python Script -> Script -> insert a byte
  7. Если вы хотите ярлык для этого, пожалуйста, посмотрите, как: Обернуть текст с кавычками в Notepad++

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .