我希望使用Re模块替换Python中具有连续选项卡和/或空格的所有实例。我不想删除新行(排除了\ s的推荐)。目前我有:
formateed_string = re.sub("\t+" , " ", formateed_string)
formateed_string = re.sub(" +" , " ", formateed_string)
formateed_string = re.sub("\t " , " ", formateed_string)
formateed_string = re.sub(" \t" , " ", formateed_string)
,即首先检查连续的空格,然后检查连续的标签,然后检查标签/空格,然后检查空格/标签。这似乎正常工作,但偶尔会留下一个双重空间(我想这意味着有不寻常的标签/空间污染,上面没有完全删除)。
是否有一种简单/更优雅的方式来实现这一目标?
[n.b。运行Python 2.7]
答案 0 :(得分:6)
以下正则表达式将使用单个空格替换连续的制表符或空格。请注意,它不会将单个标签转换为空格。
formatted_string = re.sub("[\t ]{2,}", " ", formatted_string)
答案 1 :(得分:3)
在正则表达式中,如果将字符放在方括号内,则表示"这些字符中的任何一个"。因此"[\t ]+"
将匹配任何标签和/或空格序列。
formatted_string = re.sub("[\t ]+", " ", formatted_string)