正则表达式 - 删除除字母数字和重音之外的所有特殊字符

时间:2012-10-06 02:07:27

标签: python regex

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

我尝试过类似的事情:

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

但我没有成功。以下表达式只允许使用字母数字而不是重音:

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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分: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'

之类的东西