我正在使用Python 2.7.3,这是我的代码来解析一个读入'file'的网站:
list = re.findall(r'<span info=".+</span>| \
Name: .+<br>| \
<span id="Phone" info="phonenumber">.+</span>| \
',file)
我的实际代码超过4行,但这应该得到重点。我试图在单独的行上写这个,所以我更容易阅读/调试,但现在看来没有任何东西被存储到列表中。
我已经尝试将前几个表达式移动到一行,它工作正常。我做错了什么?
答案 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)
但是,您必须转义空格,因为在详细的正则表达式中忽略空格。
你的解决方案失败了,因为缩进引入的空格成为正则表达式的一部分(因为它不是一个冗长的正则表达式,它是重要的空格)。