Python split()而不删除分隔符

时间:2011-10-23 12:28:51

标签: python split delimiter

这段代码几乎可以满足我的需要..

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

除非删除所有'>'分隔符。

所以,

<html><head>

变成

['<html','<head']

有没有办法使用split()方法但保留分隔符,而不是删除它?

有了这些结果..

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

4 个答案:

答案 0 :(得分:40)

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

答案 1 :(得分:28)

如果使用拆分解析HTML,则很可能是错误的,除非您正在编写针对固定且安全的内容文件的一次性脚本。如果它应该适用于任何HTML输入,您将如何处理<a title='growth > 8%' href='#something'>

之类的内容

无论如何,以下内容对我有用:

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

答案 2 :(得分:14)

这个怎么样:

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

答案 3 :(得分:0)

将其拆分,然后对于数组/列表中的每个元素(除了最后一个)添加一个尾随的“&gt;”它。