19

У меня большой текстовый файл, в котором я хочу удалить весь текст между символом ^ и символом ~. Это должно работать через линии также.

Я попытался выполнить обычный поиск и замену, используя ^*~ в поле «Найти» и ничего в поле «Заменить», но он нашел 0 результатов.

4 ответа4

21

Это невозможно при обычном поиске и замене. Если вы используете Notepad++ 6, вы можете воспользоваться новым движком регулярных выражений, который поддерживает PCRE (источник).

Нажмите Ctrl + H, чтобы открыть диалоговое окно « Найти и заменить » и выполнить следующее действие:

Find what:          \^.*?~
Replace with:       
Wrap around:        checked
Regular expression: selected
. matches newline:  checked

Теперь нажмите Alt + A, чтобы заменить все вхождения.

Регулярное выражение в Find, составленное следующим образом:

  • \^ является буквальным ^.
  • .*? Наименьшее количество символов, которое позволяет регулярному выражению соответствовать.
  • ~ это буквальное ~.
7

Ты захочешь искать \^.*?~ и убедитесь . соответствует новая строка включена:

Это потому, что ^ имеет особое значение, оно соответствует началу строки. Таким образом, нам нужно избежать обратной косой черты \^ .

Запись ^* будет соответствовать "любому числу начала строки в строке". .* соответствует "любому символу", но по умолчанию не соответствует переводу строки.

2

Попробуйте использовать это регулярное выражение в разделе поиска \^[^~]*~ чтобы заменить все между ^ и ~ включительно.

0

У меня было похожее ЗАМЕСТИТЕЛЬНОЕ требование замены с начальным и конечным символами. Это пришло из внешнего вида электронной почты; сотни членов, и я просто хотел, чтобы имена людей были удалены из < RemoveTextHere > .

оригинал

First1 Last1 <First1.Last1@email.com>; First2 Last2 <First2.Last2@email.com>; First3 Last3 <First3.Last3@email.com>; First4 Last4 <First4.Last4@email.com>;

Деннис был близок к моему решению Find what: \^.*?~ но мне пришлось поменять свои буквальные символы Find what: \<.*?> Тогда мне пришлось удалить первую косую черту Find what: <.*?>

Обновлено Find what: <.*?> ; Заменить пустым.

First1 Last1 ; First2 Last2 ; First3 Last3 ; First4 Last4

_

Специальные символы: * , $ , \ , + , ^ , ( и ) , [ , ] , { и }

Джерри Джеремия описывает специальные символы здесь https://stackoverflow.com/questions/37742519/notepad-wildcard .

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