Notepad удалить все кроме

Обновлено: 05.07.2024

У меня есть группа индийских фамилий, которые имеют номер слева и справа. Мне нужно убрать все, кроме имени.

И хотел бы закончить на .

У меня есть несколько таких списков, и все они представлены в несколько разных форматах. Я пытаюсь узнать, что делают команды Regex, поэтому был бы признателен за любое краткое описание того, что делает эту работу (я тоже читаю об этом).

3 ответа

У меня есть список русских фамилий, с некоторыми другими вещами в пути. Я хочу удалить все, кроме английской версии фамилии, которая находится внутри скобок. У меня есть . 1 Иванов (Ivanov) 5,043,000 2 Смирнов (Smirnov) 3,419,000 3 Васильев (Vasilev) 2,464,000 И хочу. Ivanov Smirnov Vasilev

  • Ctrl + H
  • Найти что: ^\S+\s+(\S+).+$
  • Заменить на: $1
  • Нажмите на Replace All

\s означает любой вид пространств.
\S -это противоположность, все, что не является пространством.

Второй столбец хранится в группе 1, поэтому при замене te остается только второй столбец.

Допустим, у вас есть это в текстовом файле строка за строкой, вы выполните следующие действия:

  • Ctrl + H
  • Найти что: (.+)([A-Z][a-z]+)(.+)
  • Заменить на: \2
  • Режим поиска: Регулярное выражение
  • Нажмите на Replace All

enter image description here

вы можете заменить [0-9 ,] ничем

Похожие вопросы:

Я использую регулярное выражение в Notepad++, пытаясь удалить все после определенного слова. Например вот мой текст: Bull01 blah blah Bull02 Blah blah Bull03 Blah Bull04 Blah Bull05 Blah ** Bull300.

У меня есть огромный текстовый файл (375K строк ). все, что мне нужно, - это первый столбец текстового файла. Я использую notepad++. Как я могу удалить все, кроме этой первой колонки? Удаление с.

У меня есть записи в таблице базы данных Postgres, в которой у меня есть посторонние данные в определенном столбце. Я хочу выбрать все, кроме этого фрагмента текста из этой колонки. Этот фрагмент.

У меня есть список русских фамилий, с некоторыми другими вещами в пути. Я хочу удалить все, кроме английской версии фамилии, которая находится внутри скобок. У меня есть . 1 Иванов (Ivanov).

У меня есть несколько файлов с текстом типа . <studio>Morabito Picture Company</studio>.

Я использую Outlook API , чтобы забрать тело посланного email. Теперь я хочу очистить тело, чтобы удалить все ссылки, заголовки и т. д. и сохранить только текст, написанный пользователем. Ниже.

Я открываю страницу HTML в Notepad++. На странице html есть много чего, но особенно этот тег: <div Я бы хотел удалить из файла html все, кроме этого тега и.

Notepad++ : у меня есть файл с телефонными номерами, все они имеют тип 123-123-1234 Мне нужно сопоставить шаблон any3digitsDASHany3digitsDASHany4digits и удалить все, что не соответствует этому.

Можно ли удалить дублированные строки в Notepad ++, оставив только одно вхождение строки?

Notepad ++ может сделать это, если вы хотите сортировать по строкам и одновременно удалять дублирующиеся строки.

Вам понадобится плагин TextFX. Раньше это было включено в более старые версии Notepad ++, но если у вас более новая версия, вы можете добавить ее из меню, перейдя в Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install . В некоторых случаях это тоже можно назвать TextFX Characters , но это одно и то же

Флажки и кнопка требуются теперь появятся в меню в разделе: TextFX -> TextFX Tools .

Убедитесь, что «сортировать выходные данные только уникальные . » отмечен. Далее выберите блок текста ( Ctrl +, A чтобы выделить весь документ). Наконец, нажмите «сортировать строки с учетом регистра» или «сортировать строки с учетом регистра»

расположение меню в n ++

Невероятно мощный плагин, несмотря на его «возраст». Надеюсь, они НИКОГДА не уберут его из стандартного предложения плагинов для АЭС. Парень, который думал обо всех возможностях этого плагина, был своего рода «провидцем». А как насчет Notepad ++ x64 версии? Плагин TextFX x64-версии не существует @Geograph И не будет 64-битного плагина TextFx, см. Эту заметку . Поэтому было бы хорошо узнать, есть ли альтернативный плагин, обеспечивающий сортировку и удаление дубликатов.

Начиная с версии Notepad ++ версии 6, вы можете использовать это регулярное выражение в диалоге поиска и замены:

и заменить ничем . Это оставляет из всех повторяющихся строк последнее вхождение в файл.

Для этого не требуется сортировка, и повторяющиеся строки могут находиться в любом месте файла!

Вам необходимо проверить параметры «Регулярное выражение» и «. Соответствует новой строке»:

Блокнот ++ Заменить диалог

^ соответствует началу строки.

(.*?) соответствует любому символу 0 или более раз, но как можно меньше (это точно соответствует строке, это необходимо из-за опции ". соответствует новой строке"). Соответствующая строка сохраняется из-за квадратных скобок и доступна с помощью \1

$ соответствует концу строки.

\s+?^ эта часть сопоставляет все пробельные символы (символы новой строки!) до начала следующей строки ==> Это удаляет символы новой строки после соответствующей строки, так что после замены не остается пустой строки.

(?=.*^\1$) это положительное прогнозное утверждение. Это важная часть в этом регулярном выражении, строка сопоставляется (и удаляется) только тогда, когда точно такая же строка следует в другом месте файла.

о, это блестяще, оно даже удаляет пустые строки, я макрос этого прямо сейчас :) В некоторых случаях он просто удаляет ВСЕ строки в файле. Есть ли способ удалить последнее событие? Это соответствует всем, кроме последнего . В моем случае, когда это решение убрало все строки, сняв галочку, . matches newline сделали свое дело . @SerG В некоторых случаях это не сработало и для меня, но когда я убрал «соответствует новой строке», это сработало :)

Если строки располагаются сразу после друг друга, вы можете использовать регулярное выражение замены:

Возможно, другим повезло с этим, но для меня ^ (. * \ N) \ 1 приводит к «Не могу найти текст» @ b1naryatr0phy, убедитесь, что для «Режим поиска» установлено значение «Регулярное выражение», я также обновил шаблон, чтобы он мог обрабатывать окончания строк в стиле Windows notepad ++ имеет лёгкий движок регулярных выражений, он не допускает расширенных функций, даже «? или \ r \ n», так как он работает только в одной строке и вы используете $ для символов \ r \ n это устраняет один за другим. Вы должны повторить это много раз. Интересно, почему \ n + -> \ n не работает (хотя он сообщает о многих заменах) @Val, если вы сделаете часть обратной ссылки совпадения группой, для которой требуется 1 или более совпадений, шаблон будет соответствовать N смежным дублирующимся линиям одновременно: ^(.*\r?\n)(\1)+

Notepad ++

Убедитесь, что в режиме поиска вы выбрали переключатель « Регулярное выражение »

Найти то, что:

Заменить:

Перед:

и мы думаем там

и мы думаем там

одна линия

Это возможно

Это возможно

После:

и мы думаем там

одна линия

Это возможно

Разве файл не должен быть отсортирован, чтобы это работало?

Если вам не важен порядок строк (что, я думаю, вам не нужно), вы можете использовать Linux / FreeBSD / Mac OS X / Cygwin и сделать:

Затем снова откройте файл в Notepad ++.

Не работает на Windows 7. 'cat' is not recognized as an internal or external command, operable program or batch file. @Iain Elder: cat - это стандартная утилита Unix, поэтому в этом ответе указано, что она работает на linux, FreeBSD и MacOSX. Ответ также предполагает Cygwyn: это программа для Windows, которая предоставляет оболочку в стиле Unix, а вместе с ней и cat. Короче говоря (слишком поздно!): Win 7 нуждается в Cygwin для этого. В Windows у вас есть PowerShell: cat yourfile | sort -Unique Это хорошие примеры "безвозмездного использования кошки". Забудьте об утилите cat и просто используйте перенаправление файлов таким образом: sort <yourfile | uniq> yourfile_nodups @ scott8035, я согласен, что cat бесполезен для выполнения этой команды, но я часто нахожу полезным начинать с cat при вычислении длинной последовательности неочевидных команд, таких как cat file | сед . | сед . | Сед . и так далее. Поэтому я бы сказал, что могут быть причины для использования кошки. Конечно, кошка может быть удалена в конце, но некоторые слишком ленивы для этого.

Последние версии Notepad ++, по-видимому, вообще не включают плагин TextFX. Чтобы использовать плагин для сортировки / устранения дубликатов, плагин должен быть либо загружен и установлен (более задействован), либо добавлен с помощью менеджера плагинов.

А) Простой способ (как описано здесь ).

Плагины -> Диспетчер плагинов -> Показать диспетчер плагинов -> вкладка «Доступно» -> Символы TextFX -> Установить

Б) Более сложный способ, если нужна другая версия или простой способ не работает.

Загрузите плагин от SourceForge:

Откройте zip-файл и распакуйте NppTextFX.dll

Поместите NppTextFX.dll в каталог плагинов Notepad ++, например:
C: \ Program Files \ Notepad ++ \ plugins

Запустите Notepad ++, и TextFX будет одним из пунктов меню файла (как видно из ответа №1 выше Колина Пикарда)

После установки плагина TextFX следуйте инструкциям в Ответе № 1, чтобы отсортировать и удалить дубликаты.

Кроме того, рассмотрите возможность настройки сочетания клавиш с помощью « Настройки»> «Сопоставление сокращений», если вы часто используете эту команду или хотите скопировать сочетания клавиш, такие как F9 в TextPad для сортировки.

В notepad ++ 7.6 этот плагин должен быть добавлен в C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX . Кроме этого это все еще работает отлично.

В версии 7.8 это можно сделать без каких-либо плагинов - «Правка» -> «Операции со строками» -> «Удалить последовательные дубликаты». Вам нужно будет отсортировать файл, чтобы поместить повторяющиеся строки в последовательном порядке, прежде чем это сработает, но это работает как шарм.

Параметры сортировки доступны в меню «Правка» -> «Операции со строками» -> «Сортировка по . ».

Вам может понадобиться плагин для этого. Вы можете попробовать командную строку cc.ddl (удалить дубликаты строк) ConyEdit . Это кросс-редактор плагин для текстовых редакторов, в том числе Notepad ++.

Когда ConyEdit работает в фоновом режиме, выполните следующие действия:

  1. введите командную строку cc.ddl в конце текста.
  2. Скопируйте текст и командную строку.
  3. Вставьте, тогда вы увидите, что вы хотите.

пример

Поиск регулярного выражения: \b(\w+)\b([\w\W]*)\b\1\b

Замените это: $1$2

Хит заменить кнопку до тех пор, пока не останется больше матчей за регулярное выражение в файле.

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

Никто не работал для меня.

Создал тестовый файл, чтобы попробовать это, но регулярное выражение не работало надежно, чтобы выполнить работу. Для всех моих данных, это работало отлично. Я забыл, каково было мое решение. Добавьте больше деталей, где это не удалось, чтобы другие люди могли улучшить это регулярное выражение. Я создал файл, чтобы в каждой строке было целое число от 0 до 999, в случайном порядке, иногда с дубликатами. Он не удалял большинство дубликатов и не удалял дубликаты, которые не были последовательными. Пожалуйста, предоставьте 2 примера для работающих и для неработающих. Это поможет кому-то.

Может быть, есть другой плагин, который содержит необходимые функции. Кроме этого, единственный способ сделать это в Notepad ++ - это использовать какое-то специальное регулярное выражение для сопоставления и затем заменить ( Ctrl + F → Заменить вкладку).

Хотя есть много функций, доступных через пункт меню Edit (обрезка, удаление пустых строк, сортировка, преобразование EOL), «уникальная» операция недоступна.

Я просмотрел несколько вопросов здесь, и я приблизился к получению ответа, однако некоторые из них делают полную противоположность того, что мне нужно, чтобы они делали. Это на самом деле хороший знак, поскольку он показывает, что я делаю некоторые успехи.
Что я пытаюсь сделать, это сделать массивный список адресов электронной почты из базы данных, которую я нашел. Каждая строка содержит произвольный текст до и после адресов электронной почты, для которых у меня нет практического применения, и я хотел бы избавиться от них, чтобы у меня был чистый список адресов электронной почты.
Каждая строка выглядит примерно так: (Мне пришлось подвергать цензуре некоторую информацию)

Каждая строка в точности такая, и мне нужен способ удалить все до и после того, что помечает регулярное выражение.

В этот вопрос, я нашел регулярное выражение, которое выбирает все электронные письма отлично.

Решение

Я просмотрел несколько вопросов здесь, и я приблизился к получению ответа, однако некоторые из них делают полную противоположность того, что мне нужно, чтобы они делали. Это на самом деле хороший знак, поскольку он показывает, что я делаю некоторые успехи.
Что я пытаюсь сделать, это сделать массивный список адресов электронной почты из базы данных, которую я нашел. Каждая строка содержит произвольный текст до и после адресов электронной почты, для которых у меня нет практического применения, и я хотел бы избавиться от них, чтобы у меня был чистый список адресов электронной почты.
Каждая строка выглядит примерно так: (Мне пришлось подвергать цензуре некоторую информацию)

Каждая строка в точности такая, и мне нужен способ удалить все до и после того, что помечает регулярное выражение.

В этот вопрос, я нашел регулярное выражение, которое выбирает все электронные письма отлично.

Кроме того, на этот вопрос, который я нашел что-то, чтобы положить в Заменить поле Notepad ++, и он удаляет электронные письма и оставляет все, кроме электронных писем. Итак, по сути, мне нужно что-то, что делает прямо противоположное этому.

Кроме того, есть около 10 миллионов строк (База данных 844 МБ) пройти, поэтому он должен быть в основном автоматизированным и простым, чтобы сэкономить время.

Другие решения

Техника, которая может вам помочь, состоит из двух шагов:

во-первых, вы должны поместить свое регулярное выражение внутри (?s)^.*?(YOUR_REGEX)[^\n]* (введите его в Найти то, что поле), и используйте \1 (обратная ссылка на текст, захваченный с вашим исходным рисунком) в Заменить поле.

затем вручную удалите ненужный текст.

Итак, в вашем случае используйте

Оптимизация это немного (учтите, что [A-Za-z0-9_] можно заменить на \w здесь), вы можете использовать следующее регулярное выражение с . matches newline опция ВКЛ:

объяснение:

введите описание изображения здесь

Как указано в комментарии @stribizhev , Мне нужно сделать следующее:

1: Добавьте следующее регулярное выражение в Найти то, что коробка:

2: Добавьте следующее к Заменить коробка:

И это все! Спасибо всем большое!

Если ваш файл отформатирован и отделен : , может быть, это регулярное выражение работает лучше для вас:

У меня есть текстовый файл и вы хотите сохранить строки, начинающиеся с <Path> , и удалить все остальные строки.

Как я могу это сделать?

Существует простой способ добиться этого. Вам нужно выполнить 3 шага.

Перейдите в меню поиска> Найдите . > Выберите вкладку «Отметить». Активируйте регулярные выражения. Найдите ^<Path> ( ^ для начала строки). Не забудьте проверить «закладки линий» и нажать «Отметить все»

== > Все строки, которые вы хотите сохранить, получили закладку

Перейдите в меню «Поиск - Закладка - Обратная закладка»

== > Все строки, которые вы хотите удалить, отмечены закладкой.

Перейдите в меню «Поиск - Закладка - Удалить закладки»

== > Все заблокированные строки удаляются.

Это можно сделать в два этапа с 6.3. Я думаю, что это можно сделать раньше, чем у меня было 5.9, когда я впервые попробовал это.

Используя пост stema в качестве основы для этого ответа. Сейчас еще один шаг. Отметьте линии и удалите немаркированные строки. Готово. Ниже приводятся подробные инструкции.

Меню поиска «Найти». В диалоговом окне «Найти» перейдите на вкладку «Отметить». Активируйте регулярные выражения. Найти ^ (^ для начала строки). Не забудьте проверить «закладки линий» и нажать «Отметить все»

== > Все строки, которые вы хотите сохранить, получили закладку

Меню поиска -> Закладка -> Удалить немаркированные строки.

== > Все NON Закладочные строки удаляются.

Двухэтапный вариант

заменить тест на запрошенный текст

Вариант с одним шагом

Используйте ^(?!<Path>).*\r\n для замены совпадений с пустой строкой. Обобщенная версия будет ^(. *?test).*\r\n . Это не удалит пустую строку в конце файла. Все остальные строки удаляются, включая несколько последовательных пустых строк.

Объяснение:

(?!) - это негативный взгляд. ^.*test.*$ выбирает всю строку, содержащую запрошенный текст.

Мне кажется, что самый простой способ - просто использовать функцию «Найти все в текущем документе», а затем либо скопировать результаты в новый файл, либо выбрать все и заменить в текущем.

Это найдет все строки, содержащие ваш текст, и перечислит их внизу. Просто щелкните правой кнопкой мыши по результату поиска и скопируйте /вставьте.

Перейдите в меню Поиск -> Найти . -> Активируйте регулярные выражения. Найдите «^ Путь " (^ для начала строки).

Появится окно «Найти результат» со всеми строками шаблона. Выберите копию /вставьте их на новую вкладку в Notepad ++.

На этой новой вкладке перейдите в: menu Поиск -> Заменить . -> Активировать регулярные выражения.

В поле «Найти что:» используйте шаблон: «Линия \ d +:». Оставьте поле «Заменить на:» пустым.

Если вы действительно хотите сопоставить <Path> , а не путь к файловой системе, вы можете попробовать это из командной строки с помощью Perl:

Он работал с Strawberry Perl в Windows, поэтому соответствующим образом настраивайте, если результаты не соответствуют тем, что вы ожидаете.

Это неуклюже, но скопируйте все это в Excel , а затем используйте =IF(LEFT(A1,6)="<Path>",A1,"") и копировать эту формулу до конца. Затем скопируйте его обратно в Notepad ++. Это не идеально, но это довольно легко (если у вас есть Excel). Предупреждение: он не будет работать с отступом (Excel сдвинет столбцы и т. Д.).

Нет простого способа сделать то, что вы хотите, с помощью Notepad ++. Вам нужно либо загрузить программу на компьютер, либо скрипт что-то в VB (я предполагаю, что вы в Windows).

Удалить все строки, не содержащие:
sed -i '/^<PATH>/!d' file

Распечатайте все строки, содержащие новый файл:
sed -n '/^<PATH>/p' file > newfile

Пример: sed -n '/^\/var\/www/p' file > newfile
Это напечатает все строки, начинающиеся с '/var /www'. Если бы я подал, чтобы избежать символа /, команда вывела бы ошибку. Вы можете избежать специального символа (например, /) с символом обратной косой черты \.

Используйте Search-> Замените и введите регулярное выражение, например ^[^ ].* , и замените все на пустую строку, используя Regular expression . Следующий шаг - найти пустые строки, которые ищут замену \n\n с помощью \n с помощью Extended несколько раз, пока не будут найдены вхождения 0 occurrences were found. (используйте \r\n\r\n и \r\n в зависимости от формата файла). Если у вас очень много пустых строк в строке, более оперативно использовать \n\n\n\n\n\n\n или даже больше \n : s в строке поиска.

Читайте также: