2011-04-19 100 views
1

我有一个vCard文件包含成千上万的联系人。在vCard文件联系人弦在一起,单个联系人被最简单的方法来消除文本文件中的某些模式

BEGIN:VCARD 
...  
END:VCARD 

公司或组织的拥抱可以通过

ORG;CHARSET=UTF-8:My Company;  

设置我寻找到eleminate有每个条目的最简单方法没有公司。我不介意它是脚本语言,还是Notepad ++。

有什么建议吗?谢谢!

回答

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 

您可以捕获与个人电子名片:BEGIN:VCARD\s+(.*?$\s+)+?END:VCARD

与每场比赛

然后,如果捕获的字符串也是一个匹配:BEGIN:VCARD\s+(.*?$\s+)+ORG;CHARSET=UTF-8:(?<companyName>.*?);\s+(.*?$\s+)+END:VCARD然后继续使用它。如果不匹配,则不存在companyName,因此不要保存它。

我敢肯定,你可以用一个正则表达式做到这一点,但通过分解问题

+1

谢谢你这对我的作品!使用:^(^(BEGIN:VCARD \ s +(。*?$ \ s +)+ END:VCARD)|(BEGIN:VCARD \ s +(。*?$ s +)+ ORG; CHARSET = UTF-8 :。*?; \ s +(。*?$ \ s +)+ END:VCARD)) – Norbert 2011-04-20 07:02:23

+0

好想法!我知道这是可能的:) – 2011-04-20 13:57:18

相关问题