Python split() 不去掉分隔符
这段代码差不多能满足我的需求……
for line in all_lines:
s = line.split('>')
但是它把所有的'>'分隔符都去掉了。
所以,
<html><head>
变成了
['<html','<head']
有没有办法使用split()方法,但能保留分隔符,而不是把它去掉呢?
这样得到的结果……
['<html>','<head>']
4 个回答
23
这样怎么样:
import re
s = '<html><head>'
re.findall('[^>]+>', s)
38
如果你在用分割的方法解析HTML,那你很可能是在走弯路,除非你是在写一个只用一次的脚本,而且这个脚本是针对一个固定且安全的内容文件。如果这个脚本是要处理任何HTML输入,那你该怎么处理像 <a title='growth > 8%' href='#something'>
这样的情况呢?
不管怎样,下面的方法对我来说是有效的:
>>> import re
>>> re.split('(<[^>]*>)', '<body><table><tr><td>')[1::2]
['<body>', '<table>', '<tr>', '<td>']
80
d = ">"
for line in all_lines:
s = [e+d for e in line.split(d) if e]
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。