-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

2 に答える 2

1

ドキュメントで読むことができるように:http://docs.python.org/library/re.html

シーケンスは\sすべての空白に一致します。したがって、一番下のルールはすべての空白を削除します。

于 2012-04-25T12:49:58.337 に答える
0

WoLpH の答えに加えて、最初の 5 つの re はいくつかの変形で終わり、最後に\s空白 (改行以外) を含まない文字列に置き換えます...

于 2012-04-25T12:51:43.833 に答える