将 html 字符串拆分为列表

这是我的字符串:

'<.tag> xxxxx<./tag> <.tag>'

我想将它附加到一个列表中:

x=['<.tag>','xxxx','<./tag>','<.tag>']


守着一只汪
浏览 248回答 2
2回答

青春有我

使用 re.findall用于此目的以字符串列表的形式返回字符串中模式的所有非重叠匹配项。从左到右扫描字符串,并按找到的顺序返回匹配项。如果模式中存在一个或多个组,则返回组列表;如果模式有多个组,这将是一个元组列表。结果中包含空匹配项In [1]: a='<.tag> xxxxx<./tag> <.tag>'In [2]: import reIn [4]: re.findall(r'<[^>]+>|\w+',a)Out[4]: ['<.tag>', 'xxxxx', '<./tag>', '<.tag>']In [5]: re.findall(r'<[^>]+>|[^<]+',a)Out[5]: ['<.tag>', ' xxxxx', '<./tag>', ' ', '<.tag>']In [17]: [i.strip() for i in re.findall(r'<[^>]+>|[^<]+',a) if not i.isspace()]Out[17]: ['<.tag>', 'xxxxx', '<./tag>', '<.tag>']

米脂

非常正确,使用解析器。但是,这会做到:def f(x):&nbsp; &nbsp; lst = []&nbsp; &nbsp; rec = ""&nbsp; &nbsp; for i in x:&nbsp; &nbsp; &nbsp; &nbsp; if i == "<":&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if rec != "":&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lst.append(rec)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rec = ""&nbsp; &nbsp; &nbsp; &nbsp; rec += i&nbsp; &nbsp; &nbsp; &nbsp; if i == ">":&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lst.append(rec)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rec = ""&nbsp; &nbsp; return lst它基本上记录了“<”和“>”之间的所有内容并将其添加到列表中。它还记录所有 ">" 和 "<" 之间的间隙,以便记录诸如“xxxx”之类的内容
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python