Python,如何将read语句编码到多行?

时间:2013-02-27 07:37:10

标签: python python-2.7

我正在使用Python 2.7.3,这是我的代码来解析一个读入'file'的网站:

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

我的实际代码超过4行,但这应该得到重点。我试图在单独的行上写这个,所以我更容易阅读/调试,但现在看来没有任何东西被存储到列表中。

我已经尝试将前几个表达式移动到一行,它工作正常。我做错了什么?

1 个答案:

答案 0 :(得分: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)

但是,您必须转义空格,因为在详细的正则表达式中忽略空格。

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