Подтвердить что ты не робот

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

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

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

Кроме того, удаляются все разделители ' > '.

Итак,

<html><head>

Входит в

['<html','<head']

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

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

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

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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