
Итак, я немного почитал и обнаружил, что NotePad++ не использует «нормальные» регулярные выражения (начинаю думать, что мне просто придется вернуться к SciTE), но вот мой вопрос:
У меня есть экспортированный список данных с некоторыми избыточными данными, которые я пытаюсь очистить и преобразовать в хороший CSV-файл для импорта в адресные книги (мигрирую решение для факс-сервера, старый уже устарел, поэтому это лучшее, что я могу получить для экспорта).
Строка, которую я пытаюсь удалить из каждой группы записей, всегда начинается
Запись: ИМЯ ~
А затем следует 12-значный буквенно-цифровой (кажется, шестнадцатеричный) код, который уникален для каждой группы записей. Для нескольких групп записей есть понятная человеку запись после "NAME", но их достаточно мало, и я могу удалить их вручную, поэтому сопоставление их не составит большого труда.
Итак, я хочу найти каждую строку, которая начинается с Entry: и выделить ее до конца строки. Каждая запись в каждой группе находится на отдельной строке. Затем я использую Find & Replace, чтобы удалить эти строки из списка.
ОБНОВЛЕНИЕ: Вход и выход
Entry: NAME ~00003193820
ShortName: ~00003193820
Owner: USRENAME
Name: John
FamilyName: John
DearName: John
Organisation: Acme 1 Corp
Via: FAX-ANY 1(555) 123-4567
Entry: NAME ~00003193820
ShortName: ~00003193820
Owner: USRENAME
Name: Sam
FamilyName: Sam
DearName: Sam
Organisation: Acme 2 LLC
Via: FAX-ANY 1(555) 890-1234
Вот две группы записей. Я хочу удалить строки, начинающиеся с "Entry:" из каждой группы.
решение1
Другим вариантом было бы
^Entry: NAME .*
Который будет искать строки, начинающиеся с Entry: NAME
и все, что после этого.
решение2
С использованием
^Entry: NAME ~\d+$
поскольку шаблон поиска, похоже, работает так, как и требовалось.
Я бы лично рекомендовал сопоставление с использованием \d
заполнителя (который соответствует любой одиночной цифре в диапазоне от 0
до 9
) вместо более общего .
заполнителя. На самом деле, вы даже должны сделать это:
^Entry: NAME ~\d{12}$
указать, что вы ожидаететочно12 цифр подряд. Таким образом, если запись может содержать что-то, чего вы не ожидали, вы не замените это случайно.
Если строка представлена в шестнадцатеричной системе счисления, можно использовать:
^Entry: NAME ~[0-9a-fA-F]{12}$
Обратите внимание, что я не проверял, правильно ли работают последние два примера в Notepad++, но, насколько мне известно, это довольно простой синтаксис.