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

如何在python中使用regex?

  •  -1
  • jahmax  · 技术社区  · 14 年前

    我正在尝试解析来自google suggest的关键字,这是url:

    http://google.com/complete/search?output=toolbar&q=test

    '|<CompleteSuggestion><suggestion data="(.*?)"/><num_queries int="(.*?)"/></CompleteSuggestion>|is'
    

    我如何解析这些信息?我不想使用minidom,因为我认为regex的代码会更少。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Marcelo Cantos    14 年前

    你可以用 etree :

    >>> from xml.etree.ElementTree import XMLParser
    >>> x = XMLParser()
    >>> x.feed('<toplevel><CompleteSuggestion><suggestion data=...')
    >>> tree = x.close()
    >>> [(e.find('suggestion').get('data'), int(e.find('num_queries').get('int')))
         for e in tree.findall('CompleteSuggestion')]
    [('test internet speed', 31800000), ('test', 686000000), ...]
    

    它比正则表达式更像代码,但它也做得更多。具体地说,它将一次性获取整个匹配列表,并在 data

        2
  •  2
  •   Community CDub    8 年前

    RegEx match open tags except XHTML self-contained tags

    这是一个XML文档。请重新考虑XML解析器。它将更加健壮,最终可能花费更少的时间,即使它是更多的代码。