Самый простой способ устранить определенный шаблон в текстовом файле - PullRequest
1 голос
/ 19 апреля 2011

У меня есть файл vCard , содержащий тысячи контактов. В файле vCard контакты соединены вместе, а один контакт заключен в

BEGIN:VCARD
...    
END:VCARD

Компании или организации могут быть установлены

ORG;CHARSET=UTF-8:My Company;    

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

Есть предложения? Спасибо!

1 Ответ

0 голосов
/ 19 апреля 2011

Задумывались ли вы о регулярных выражениях?

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

Например:

BEGIN:VCARD
...
ORG;CHARSET=UTF-8:My Company;
...
END:VCARD
BEGIN:VCARD
...
...
END:VCARD
BEGIN:VCARD
...
ORG;CHARSET=UTF-8:My Company;
...
END:VCARD

Вы можете захватить отдельную vCard с помощью: BEGIN:VCARD\s+(.*?$\s+)+?END:VCARD

Затем при каждом совпадении, если захваченная строка также соответствует: BEGIN:VCARD\s+(.*?$\s+)+ORG;CHARSET=UTF-8:(?<companyName>.*?);\s+(.*?$\s+)+END:VCARD, сохраните ее.Если это не совпадение, название компании отсутствует, поэтому не сохраняйте его.

Я уверен, что вы можете сделать это с помощью одного регулярного выражения, но это поможет мне, решив проблему

...