【问题标题】:regex in python, findallpython中的正则表达式,findall
【发布时间】:2015-10-05 17:16:02
【问题描述】:

我试图在 xml 文件中查找特定字符串。 到目前为止,这是我的代码:

data = re.findall(r'<tabular>(.*?)</tabular>' ,file)

所以来自以下 xml 文件:

some stuff
    <tabular>
        mydata
    </tabular>
some stuff

我想提取我的数据,但我的代码似乎不起作用。

【问题讨论】:

  • 这是您正在解析的 XML 数据吗?
  • 用正则表达式解析 xml 是一个非常糟糕的主意

标签: python regex findall


【解决方案1】:

使用html or xml parsers 虽然这里有一个快速修复

data = re.findall(r'<tabular>([\s\S]*?)</tabular>' ,file)

.默认不匹配\n。所以要么使用DOTALL标志要么[\s\S]

【讨论】:

    【解决方案2】:

    这里有另一个解决方案:

    >>> data = re.findall(r"<tabular>([^<]+)<\/tabular>", file)
    

    【讨论】:

      猜你喜欢
      • 2015-08-13
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多