1

我正在尝试替换所有出现的~,!,@,#,$,%,^,&字符和其他一些字符,并删除制表符、换行符和多个空格。我只想清理并拥有单词和数字。

举个例子:

test! should be test
<script> should be script
test   test should be test test.

我尝试使用re.sub('[/.!,;+()]#-&?=<>|%$', ' ', string);. 这替换了其中的一些,但是当我添加更多字符来替换它时,它就停止了工作。建议?

4

2 回答 2

1

看起来您将新字符放置在字符类框之外。

尝试这个。

re.sub('[/.!,;+()#&?=<>|%$-]', ' ', string);
于 2013-03-29T18:44:21.567 回答
0

有些(如果不是所有)您使用的字符都是特殊的正则表达式字符,正则表达式引擎将它们解释为文字字符。

执行您所要求的更好的方法是删除所有不在您想要的字符集中的字符。

re.sub(r'[^0-9A-Za-Z \.]', '', input)

删除多个空格有点复杂。

re.sub(r'\s{2,}', '', input)

删除任何空白两次或更多次,什么都没有。

于 2013-03-29T18:46:26.417 回答