2012-04-25 75 views
-2

:) 我不知道为什么下面的Python代码也删除空格,但它确实。 有人能解释一下如何在没有这样做的情况下解决这个问题吗? 谢谢! :)蟒蛇重新防止剥离空格

text = html 
rules = [ 
    { r'>\s+' : u'>'}, 
    { r'\s+' : u' '}, 
    { r'\s*<br\s*/?>\s*' : u'\n'}, 
    { r'</(div)\s*>\s*' : u'\n'}, 
    { r'</(p|h\d)\s*>\s*' : u'\n\n'}, 
    { r'<head>.*<\s*(/head|body)[^>]*>' : u'' }, 
    { r'<a\s+href="([^"]+)"[^>]*>.*</a>' : r'\1' }, 
    { r'[ \t]*<[^<]*?/?>' : u'' }, 
    { r'^\s+' : u'' } 
] 
for rule in rules: 
    for (k,v) in rule.items(): 
     regex = re.compile (k) 
     text = regex.sub (v, text) 
print text 
+4

你真的不应该尝试使用正则表达式解析HTML。它会以泪结束。 – geoffspear 2012-04-25 12:52:15

+0

http://stackoverflow.com/a/1732454/1219006 – jamylak 2012-04-25 12:52:29

+0

谢谢,我转向HTML解析器:) – abkai 2012-04-26 11:42:44

回答

0

除了WoLpH的答案,你的第一个5重的结束与\s一些变种,并替换成包含结尾没有空格(除换行符等)的字符串...