-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 回答