这个代码几乎可以完成我需要它做的事情。
for line in all_lines: s = line.split('>')
除了它删除所有的’>’分隔符。
那么,
<html><head>
变成了
['<html','<head']
有没有一种方法可以使用 split ()方法,但是使用 留着分隔符,而不是删除它?
With these results..
['<html>','<head>']
只需将其分割,然后为数组/列表中的每个元素(除了最后一个)添加一个尾随的“ >”。
d = ">" for line in all_lines: s = [e+d for e in line.split(d) if e]
这样吧:
import re s = '<html><head>' re.findall('[^>]+>', s)
如果您使用拆分来解析 HTML,那么很可能会出错,除非您正在编写针对固定且安全的内容文件的一次性脚本。如果它应该在任何 HTML 输入上工作,那么您将如何处理类似 <a title='growth > 8%' href='#something'>的输入?
<a title='growth > 8%' href='#something'>
不管怎样,下面这些对我很有用:
>>> import re >>> re.split('(<[^>]*>)', '<body><table><tr><td>')[1::2] ['<body>', '<table>', '<tr>', '<td>']