Python 从字符串中删除特殊字符,而不是用空格替换

Python 从字符串中删除特殊字符,而不是用空格替换,python,regex,Python,Regex,我正在尝试从字符串中删除特殊字符。所有可用的示例仅用空格替换它们。但我想摆脱它们,保留字符串的顺序。下面是我试过的一些代码 input_string = "abcd. efgh ijk L.M" re.sub(r"[^a-zA-Z0-9]+",'',input_string).split(' '))) #approach 1 re.sub(r"[\W_]+",'',input_string).split(' '))) #approach

我正在尝试从字符串中删除特殊字符。所有可用的示例仅用空格替换它们。但我想摆脱它们,保留字符串的顺序。下面是我试过的一些代码

input_string = "abcd. efgh ijk L.M"
re.sub(r"[^a-zA-Z0-9]+",'',input_string).split(' '))) #approach 1
re.sub(r"[\W_]+",'',input_string).split(' '))) #approach 2
所需输出为

"abcd efgh ijk LM"
可以使用.replace()函数

not_wanted_char = [".", "*"]

your_string = "abcd. efgh ijk L.M"

for i in not_wanted_char:
    your_string = your_string.replace(i,"")

您可以将每个特殊字符(不包括空格)替换为空字符:

re.sub(r"[^a-zA-Z0-9 ]+", '', input_string)

您可以在插入符号(
^
)后面添加空格,如下所示

[1]中的
re.sub(r“[^a-zA-Z0-9]+”,'',输入字符串)
#^此处的空间
输出[1]:“abcd efgh ijk LM”
如果还想删除尾随或前导空格,可以使用
strip
方法

[2]中的
:'Hello'.strip()
出[2]:“你好”
原始字符串:“他;ll*ow!或;ld!”


结果列表是:“hello world”

如果您想保留空格,那么下面的正则表达式将非常有用

import re
input_string = "abcd. efgh ijk L.M"
re.sub('[^ A-Za-z0-9]+', '', input_string)

它将产生这个字符串-
abcd efgh ijk LM

那么
ab
呢?你想要的结果是什么样的?
import re
input_string = "abcd. efgh ijk L.M"
re.sub('[^ A-Za-z0-9]+', '', input_string)