Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从字符串中删除非ascii字符和特殊字符_Python_Python 3.x - Fatal编程技术网

Python 从字符串中删除非ascii字符和特殊字符

Python 从字符串中删除非ascii字符和特殊字符,python,python-3.x,Python,Python 3.x,我需要代码方面的帮助 我想从字符串中删除非ascii字符和特殊字符 s = "Bjørn 10.2.3" 我想要它,这样输出将删除特殊字符和非ascii字符 这样, >>> Bjrn 1023 我知道在只有非ascii字符或特殊字符的情况下如何执行。。当两者都是的时候,我不知道怎么做 到目前为止我所拥有的 对于特殊字符 s = re.sub("[\"\'.]", "", special_char

我需要代码方面的帮助 我想从字符串中删除非ascii字符和特殊字符

   s = "Bjørn 10.2.3"
我想要它,这样输出将删除特殊字符和非ascii字符

这样,

  >>> Bjrn 1023
我知道在只有非ascii字符或特殊字符的情况下如何执行。。当两者都是的时候,我不知道怎么做

到目前为止我所拥有的

对于特殊字符

s = re.sub("[\"\'.]", "", special_character_string)
对于非Ascii码

encode = non_ascii_string.encode("ascii", "ignore")
        
    s = encode.decode()

我的意思是,这一切都取决于你想删除哪些字符,但更重要的是要关注算法。解决此问题的一个方法是,通过将每个字符与有效字符列表进行比较,遍历字符串并验证每个字母是否被视为“有效”

#列出你所有的有效信件
有效期=[“a”、“b”、“c”…]
#迭代字符串中的每个字符
final_string=“”
原始字符串=“Bjørn 10.2.3”
对于列表中的字符(原始字符串):
#如果字符无效
如果valids中有字符:
最终字符串+=字符
#最后一个字符串只包含有效字符
打印(最终字符串)

您可以尝试使用简单的正则表达式和
.replace()
-

输出:

Bjrn 1023

嗨,到目前为止你都做了些什么?我做了一个编辑,这样更容易理解:不打出来就可以按字母顺序排列列表吗?像导入字符串一样?是的,您可以使用
从字符串导入ascii_字母
来导入大写和非大写的英文字母表。如果还希望包含数字,请将其与
1234567890“
连接起来。如果以上答案对您有帮助或有效,请确保单击其左侧的复选标记将其标记为有效。您好,您的方法也有效。谢谢:D@PebleJackson我很高兴这有帮助!!您可以向上投票两个答案,因为您现在有这样做的声誉(单击每个答案旁边的“向上”箭头)。。祝你好运
Bjrn 1023