代码之家  ›  专栏  ›  技术社区  ›  user469652

Python正则表达式

  •  1
  • user469652  · 技术社区  · 14 年前
    str1 = abdk3<h1>The content we need</h1>aaaaabbb<h2>The content we need2</h2>
    

    我们需要h1标签和h2标签内的内容。

    最好的办法是什么?谢谢

    谢谢你的帮助!

    2 回复  |  直到 14 年前
        1
  •  6
  •   Chris Morgan    14 年前

    最好的方法,如果它需要规模在所有将与类似美化组。

    >>> from BeautifulSoup import BeautifulSoup
    >>> soup = BeautifulSoup('abdk3<h1>The content we need</h1>aaaaabbb<h2>The content we need2</h2>')
    >>> soup.h1
    <h1>The content we need</h1>
    >>> soup.h1.text
    u'The content we need'
    >>> soup.h2
    <h2>The content we need2</h2>
    >>> soup.h2.text
    u'The content we need2'
    

    也可以用正则表达式来实现,但这可能更符合您的要求。一个更大的例子可以说明你想要什么。如果不知道你想解析什么,很难帮上忙。

        2
  •  2
  •   Jim Dennis    14 年前

    第一点建议:不要使用正则表达式进行HTML/XML解析!

    既然我们已经澄清了,我建议你看看 Beautiful Soup . Python还可以使用其他SGML/XML/HTML解析器。然而,这一个是最喜欢处理草率的“标签汤”,我们大多数人发现在现实世界。它不要求输入符合标准或格式良好。如果你的浏览器能够呈现它,那么beautifuldsoup可能能够为你解析它。

    (仍然尝试使用正则表达式执行此任务?想“不会那么糟,我只想提取 只是 里面有什么 <h1>...</h1> <h2>...</h2> “还有…”我再也不需要处理任何其他角落的案子了“那样的话简直是疯了。基于这一推理的代码将是脆弱的。它可以很好地通过您的测试,然后当您每次需要修复“只需再做一件事”时,它就会变得越来越糟糕。说真的,导入一个真正的解析器并使用它)。