我有这样的HTML文字:
myHTML = 'I like <a class="thing1 thing2">this thing</a>'
myHTMLarray = myHTML.Split(' ')
>>>['I','like','<a','class="thing1','thing2">this','thing</a>']
我需要忽略标记中的空格(&#39;&lt;&#39;和&#39;&gt;&#39;之间的任何内容)。我想要的结果是:
>>>['I','like','<a class="thing1 thing2">this','thing</a>']
理想情况下,我想确保文本中的一个单词恰好位于列表的每个元素中。因此,除了空格之外没有文本的中断标签或跨度标签将包含在前一个单词中。
答案 0 :(得分:1)
基本上你想忽略标签内的空格。为此,您需要跟踪开始和结束标记尖括号,并检测其他地方出现的空格,但不能检测括号之间的空格。
一旦我们只有重要的空格,我们就可以检测空格/单词和单词/空格边界,并使用切片提取所有单词。
class Bar(models.Model):
foo = models.ForeignKey('foo.Foo')
编辑:我对最初发布的代码做了一些小改动,以提高可读性。