2012-04-25 67 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一些變種,並替換成包含結尾沒有空格(除換行符等)的字符串...