Python split () без удаления разделителя [дубликат]



этот вопрос уже есть ответ здесь:



этот код почти делает то, что мне нужно..



for line in all_lines:
s = line.split('>')


кроме того, что он удаляет все разделители'>'.



и



<html><head>


получается в



['<html','<head']


есть ли способ использовать метод split (), но сохранить разделитель, вместо того, чтобы удалить его?



С этими результатами..



['<html>','<head>']
870   4  

4 ответов:

d = ">"
for line in all_lines:
    s =  [e+d for e in line.split(d) if e]

Если вы анализируете HTML с разделениями, вы, скорее всего, делаете это неправильно, за исключением того, что вы пишете одноразовый скрипт, направленный на фиксированный и безопасный файл контента. Если он должен работать на любом HTML-входе, как вы будете обрабатывать что-то вроде <a title='growth > 8%' href='#something'>?

в любом случае, для меня работает следующее:

>>> import re
>>> re.split('(<[^>]*>)', '<body><table><tr><td>')[1::2]
['<body>', '<table>', '<tr>', '<td>']

Как насчет этого:

import re
s = '<html><head>'
re.findall('[^>]+>', s)

просто разделите его, а затем для каждого элемента в массиве/списке (кроме последнего) добавьте к нему трейлинг">".

Comments

    Ничего не найдено.