0

我正在使用 Python 2.7.3,这是我的代码来解析读入“文件”的网站:

list = re.findall(r'<span info=".+</span>| \
          Name: .+<br>| \
          <span id="Phone" info="phonenumber">.+</span>| \
          ',file)

我的实际代码超过 4 行,但这应该能说明问题。我正在尝试将其写在单独的行上,以便我更容易阅读/调试,但就目前而言,没有任何内容存储到列表中。

我尝试将前几个表达式移到一行上,效果很好。我究竟做错了什么?

4

1 回答 1

4

使用多行字符串并使正则表达式变得冗长:

mylist = re.findall(r'''(?x)                    # verbose mode
                        <span\ info=".+</span>| # allows you to comment the regex
                        Name:\ .+<br>|          # for even better readability
                        <span\ id="Phone"\ info="phonenumber">.+</span>''', file)

但是,您将不得不转义空格,因为在冗长的正则表达式中会忽略空格。

您的解决方案失败了,因为缩进引入的空格成为正则表达式的一部分(并且由于它不是冗长的正则表达式,因此它是重要的空格)。

于 2013-02-27T07:42:32.123 回答