我想用空格替换特殊字符

时间:2019-04-24 14:07:23

标签: python

这是到目前为止我拥有的代码:

<!DOCTYPE html>
<html>
<head>
	<script src="https://unpkg.com/jquery@3.3.1/dist/jquery.min.js"></script>
</head>
<body>
  <div id="quotesBox"></div>
</body>
</html>

问题在于输出还将打印带有一个特殊字符“我的名字是/理查德”的字符串。因此,我需要用空格替换该特殊字符,最后打印输出为“我的名字叫理查德”。谁能帮我吗?

谢谢!

5 个答案:

答案 0 :(得分:1)

您对dict.fromkeys()的调用在其参数中不包含字符/

如果要将所有特殊字符映射到None,只需将特殊字符列表传递到dict.fromkeys()就足够了。如果要用空格替换它们,则可以遍历字典并将每个键的值设置为

例如:

special_chars = "?:/"
special_char_dict = dict.fromkeys(special_chars)
for k in special_char_dict:
    special_char_dict[k] = " "

答案 1 :(得分:0)

您可以通过扩展翻译表来实现:

dex = ["My Name is/Richard????::,"]
table = str.maketrans({'?':None,':':None,',':None,'/':' '})
for index, name in enumerate(dex, start = 0):

    print('{}.{}'.format(index, name.strip().translate(table)))

输出

0.My Name is Richard

您想用None替换大多数特殊字符,但前斜杠带有空格。您可以使用其他方法替换正斜杠,就像这里的其他答案一样,也可以如上所述扩展翻译表,将所有其他特殊字符映射到None并将正斜杠映射到空格。有了这个,您可以为不同的角色进行很多不同的替换。

答案 2 :(得分:0)

或者,您可以按照以下方式使用re.sub函数:

import re
s = 'Te/st st?ri:ng,'
out = re.sub(r'\?|:|,|/',lambda x:' ' if x.group(0)=='/' else '',s)
print(out) #Te st string

re.sub的参数含义如下:第一个是模式-它通知re.sub要替换的子字符串,?需要转义,否则在这里有特殊含义,{ {1}}的意思是:或,因此|将寻找re.sub?:,。第二个参数是函数,该函数返回要代替原始子字符串使用的字符:/的空格,其他任何字符为/的空格。第三个参数是要更改的字符串。

答案 3 :(得分:-1)

>>> a = "My name is/Richard"
>>> a.replace('/', ' ')
'My name is Richard'

答案 4 :(得分:-1)

要替换字符串中的任何字符或字符序列,您需要使用`.replace()'方法。因此,答案的解决方案是:

name.replace("/", " ")

here you can find details