Как удалить длинную подстроку из строки, не оставляя пустых строк?

#python #python-2.7

#питон #python-2.7

Вопрос:

У меня есть строка визитной карточки: я хочу удалить строку из этой строки, например строку, связанную с TEL, но когда я использую метод replace, остается пустая строка, как удалить полную строку, не оставляя пустой строки?

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

Ответ №1:

Попробуйте это:

 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)
 

Ответ №2:

 'n'.join([x for x in vcard.split() if 'TEL' not in x])
 

Ответ №3:

Если вы хотите удалить всю строку целиком, то вам необходимо заменить всю строку, включая начальные пробелы и новую строку в конце:

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