Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何删除除字母数字和重音符号之外的所有特殊字符?
我试过类似的东西:
text = 'abcdeáéí.@# ' re.sub(r'[^a-zA-Z0-9áéíóúÁÉÍÓÚâêîôÂÊÎÔãõÃÕçÇ: ]', ' ', text)
但我没有成功。以下表达式仅允许字母数字但不允许重音符号有效:
tmp = re.sub(r'[^a-zA-Z0-9: ]', '', x)
有人可以帮助我吗?
使您的文本成为 unicode 字符串text = u'abcdeáéí.@# ',并确保您的模式也能够接受 unicode 字符re.sub(u'[^a-zA-Z0-9áéíóúÁÉÍÓÚâêîôÂÊÎÔãõÃÕçÇ: ]', ' ', text)
text = u'abcdeáéí.@# '
re.sub(u'[^a-zA-Z0-9áéíóúÁÉÍÓÚâêîôÂÊÎÔãõÃÕçÇ: ]', ' ', text)
通过这种组合,我得到u'abcde\xe1\xe9\xed '了结果(其中\xe1等是重音字符的转义码text
u'abcde\xe1\xe9\xed '
\xe1
text
r如果您不转义任何字符,则不需要在模式前面。它在那里,所以你可以写一些东西,r'\d\w'而不是'\\d\\w'
r
r'\d\w'
'\\d\\w'