如何从字符串中删除长子串而不留下空行?

How to delete a long substring from a string without leaving empty lines?

我有一个 vcard 字符串:我想从这个字符串中删除一行,例如与 TEL 相关的行,但是当我使用 replace 方法 时,留下一个空行,如何删除整行而不留空行?

vcard = """ BEGIN:VCARD
            VERSION:3.0
            UID:00000xcdfgedgrerfgrg
            N:LastName;FirstName;;;
            TEL;CELL:00000000 EMAIL:yx@company.com
             END:VCARD
        """

试试这个:

import re
vcard = """ BEGIN:VCARD
        VERSION:3.0
        UID:00000xcdfgedgrerfgrg
        N:LastName;FirstName;;;
        TEL;CELL:00000000 EMAIL:yx@company.com
         END:VCARD
    """
re.sub(".*TEL.*\n?","",vcard)
'\n'.join([x for x in vcard.split() if 'TEL' not in x])

如果要删除整行,则必须替换整行,包括前导空格和结尾的换行符:

vcard = vcard.replace('            TEL;CELL:00000000 EMAIL:yx@company.com\n', '')