1

如何删除除字母数字和重音符号之外的所有特殊字符?

我试过类似的东西:

text = 'abcdeáéí.@# '
re.sub(r'[^a-zA-Z0-9áéíóúÁÉÍÓÚâêîôÂÊÎÔãõÃÕçÇ: ]', ' ', text)

但我没有成功。以下表达式仅允许字母数字但不允许重音符号有效:

tmp = re.sub(r'[^a-zA-Z0-9: ]', '', x)

有人可以帮助我吗?

4

1 回答 1

0

使您的文本成为 unicode 字符串text = u'abcdeáéí.@# ',并确保您的模式也能够接受 unicode 字符re.sub(u'[^a-zA-Z0-9áéíóúÁÉÍÓÚâêîôÂÊÎÔãõÃÕçÇ: ]', ' ', text)

通过这种组合,我得到u'abcde\xe1\xe9\xed '了结果(其中\xe1等是重音字符的转义码text

r如果您不转义任何字符,则不需要在模式前面。它在那里,所以你可以写一些东西,r'\d\w'而不是'\\d\\w'

于 2012-10-06T02:19:10.570 回答