这段代码几乎可以满足我的需要..
for line in all_lines:
s = line.split('>')
除非删除所有'>'分隔符。
所以,
<html><head>
变成
['<html','<head']
有没有办法使用split()方法但保留分隔符,而不是删除它?
有了这些结果..
['<html>','<head>']
答案 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;”它。