1

我有一个包含数千个联系人的vCard文件。在 vCard 文件中,联系人被串在一起,单个联系人被

BEGIN:VCARD
...    
END:VCARD

公司或组织可以由

ORG;CHARSET=UTF-8:My Company;    

我正在寻找最简单的方法来消除每个没有公司的条目。我不介意它是脚本语言还是 Notepad++。

有什么建议么?谢谢!

4

1 回答 1

0

你有没有想过正则表达式?

您可以创建一个需要公司字段的正则表达式,然后存储生成的捕获。任何没有公司字段的元素都不会被捕获,因此将被删除。

例如:

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则保留它。如果不匹配,则没有 companyName,所以不要保存它。

我相信你可以用一个正则表达式来做到这一点,但这对我来说可以解决问题

于 2011-04-19T18:29:43.023 回答