Python只保留字母数字和空格,而忽略nonASCII

2024-03-29 10:29:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这一行删除所有非字母数字字符除了空格

re.sub(r'\W+', '', s)

虽然,它仍然保留了非英语字符。在

例如,如果我有

^{pr2}$

我想得到如下输出:

> 'This is a sentence and here are non-english  11'

Tags: andrehereenglishis字母数字this
2条回答

我曾经遇到过这个问题,唯一不同的是我不能导入任何东西或使用regex。在

为了解决我的问题,我创建了一个列表,其中包含我想要保留的所有值:

values = list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ")

然后我创建了一个函数,它将循环遍历字符串中的每个项,如果它不在values列表中,它将从字符串中删除(替换)它:

^{pr2}$

例如,以下代码:

print(remover("H!e£l$l%o^ W&o*r(l)d!:)"))

应输出:

'Hello World'

当然这不是最好的方法,但考虑到当时的情况,这是一个快速而简单的方法来完成工作。在

注意:您可以通过将if item not in values更改为if item in values来替换values列表中的项目。在

注意:不允许我使用string constants,因为必须导入string包才能使用它们。在

祝你好运。在

re.sub(r'[^A-Za-z0-9 ]+', '', s)

(编辑)澄清: {cds}创建字符列表。^否定列表。A-Za-z是英文字母表,是空格。对于其中的任何一个或多个(即,不是A-Z、A-Z或空格的任何内容)替换为空字符串。在

相关问题 更多 >