使用记事本++删除所有只有电子邮件的联系人
Remove all contacts with only emails using notepad++
在 Notepad++ 中,如何删除所有具有以下结构的条目。
BEGIN:VCARD
VERSION:2.1
EMAIL;INTERNET:example@example.com
END:VCARD
注意:example@example.com
可以是任何电子邮件地址。
我已经以 vcf 格式导出了整个联系人文件,并希望删除只有 EMAIL 地址而没有任何 phone 号码(如上所示)的联系人。
有没有办法在 Notepad++ 中执行此操作?也许通过使用正则表达式搜索和替换功能?
(?s)BEGIN:VCARD(?:(?!END:VCARD|\bTEL\b).)*END:VCARD
仅当 vCard 不包含 TEL
条目时才会匹配它们。
解释:
(?s) # Allow the dot to match newlines.
BEGIN:VCARD # Match "BEGIN:VCARD".
(?: # Start non-capturing group.
(?! # Make sure we're not able to match either
END:VCARD # the text "END:VCARD" (we don't want to match beyond the end)
| # or
\bTEL\b # "TEL" (because we don't want them to be in the match).
) # End of lookahead.
. # Match any character (if the preceding condition is fulfilled),
)* # repeat as needed.
END:VCARD # Match "END:VCARD"
我假设所有 vCard 中至少有一个电子邮件地址,或者您还需要过滤这些地址吗?
在 Notepad++ 中,如何删除所有具有以下结构的条目。
BEGIN:VCARD
VERSION:2.1
EMAIL;INTERNET:example@example.com
END:VCARD
注意:example@example.com
可以是任何电子邮件地址。
我已经以 vcf 格式导出了整个联系人文件,并希望删除只有 EMAIL 地址而没有任何 phone 号码(如上所示)的联系人。
有没有办法在 Notepad++ 中执行此操作?也许通过使用正则表达式搜索和替换功能?
(?s)BEGIN:VCARD(?:(?!END:VCARD|\bTEL\b).)*END:VCARD
仅当 vCard 不包含 TEL
条目时才会匹配它们。
解释:
(?s) # Allow the dot to match newlines.
BEGIN:VCARD # Match "BEGIN:VCARD".
(?: # Start non-capturing group.
(?! # Make sure we're not able to match either
END:VCARD # the text "END:VCARD" (we don't want to match beyond the end)
| # or
\bTEL\b # "TEL" (because we don't want them to be in the match).
) # End of lookahead.
. # Match any character (if the preceding condition is fulfilled),
)* # repeat as needed.
END:VCARD # Match "END:VCARD"
我假设所有 vCard 中至少有一个电子邮件地址,或者您还需要过滤这些地址吗?