1

Итак, я немного прочитал и обнаружил, что NotePad++ не использует "нормальное" регулярное выражение (начинаю думать, что я просто вернусь к SciTE), но вот мой вопрос:

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

Строка, которую я пытаюсь удалить из каждой группы входа, всегда начинается

Запись: ИМЯ ~

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

Поэтому я хочу найти каждую строку, начинающуюся с 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:» из каждой группы.

2 ответа2

3

С помощью

^Entry: NAME ~\d+$

так как шаблон поиска, кажется, работает как требуется.

Я лично рекомендовал бы сопоставление, используя заполнитель \d (который соответствует любой отдельной цифре в диапазоне от 0 до 9) вместо более общего . заполнитель. На самом деле, вы должны даже сделать это:

^Entry: NAME ~\d{12}$

указать, что вы ожидаете ровно 12 цифр подряд. Таким образом, если запись может содержать что-то, чего вы не ожидали, вы не заменяете ее случайно.

Если строка оказывается в шестнадцатеричном формате, вы можете использовать:

^Entry: NAME ~[0-9a-fA-F]{12}$

Обратите внимание, что я не проверял, правильно ли работают последние 2 примера в Notepad++, но, насколько мне известно, это довольно простой синтаксис.

2

Другой вариант будет

^Entry: NAME .*

Который будет искать строки, начинающиеся с Entry: NAME и что-нибудь после этого.

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