如何从字符串中删除长子串而不留下空行?
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', '')
我有一个 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', '')