我试图从字符串中删除特殊字符。所有可用的示例只是用空格替换它们。但是我想去掉它们并保留字符串的顺序。下面是我尝试过的一些代码
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"
您可以在插入符号(^
)之后添加空格,如
In [1]: re.sub(r"[^ a-zA-Z0-9]+",'',input_string)
# ^ space here
Out[1]: 'abcd efgh ijk LM'
如果您还想删除尾随或前导空格,您可以使用strip
方法。
In [2]: ' Hello '.strip()
Out[2]: 'Hello'
可以用空字符替换所有特殊字符(空格除外):
re.sub(r"[^a-zA-Z0-9 ]+", '', input_string)
您可以使用。replace()函数
not_wanted_char = [".", "*"]
your_string = "abcd. efgh ijk L.M"
for i in not_wanted_char:
your_string = your_string.replace(i,"")
# initializing bad_chars_list
bad_chars = [';', ':', '!', "*"]
# initializing test string
test_string = "he;ll*o w!or;ld !"
# printing original string
print ("Original String : " + test_string)
# using replace() to
# remove bad_chars
for i in bad_chars :
test_string = test_string.replace(i, '')
# printing resultant string
print ("Resultant list is : " + str(test_string))
原始字符串:"他;我* o w !或者,ld !">
结果列表为:"hello world">
如果你想保留空格,那么下面的regex将像一个魅力
import re
input_string = "abcd. efgh ijk L.M"
re.sub('[^ A-Za-z0-9]+', '', input_string)
它将产生这个字符串-abcd efgh ijk LM