Python 用空格替换字符串中的字符
我正在编写一个简单的Python脚本,用于检索任何twitter用户(在本例中为BBC)的最新推文,并使用Mac上的集成文本到语音系统来读取特定推文的内容 一切都在正常运行,但有些事情我想改进。例如,如果一条tweet包含字符“#”,计算机会将其称为“数字”。例如,如果tweet的内容是“BBC报道最新新闻”,那么计算机会说“BBC报道最新新闻的数量” 我声明了一个字符串来保存tweet的内容,并希望找到一种用空格替换不需要的字符的方法。到目前为止,我有以下几点:Python 用空格替换字符串中的字符,python,string,replace,translate,Python,String,Replace,Translate,我正在编写一个简单的Python脚本,用于检索任何twitter用户(在本例中为BBC)的最新推文,并使用Mac上的集成文本到语音系统来读取特定推文的内容 一切都在正常运行,但有些事情我想改进。例如,如果一条tweet包含字符“#”,计算机会将其称为“数字”。例如,如果tweet的内容是“BBC报道最新新闻”,那么计算机会说“BBC报道最新新闻的数量” 我声明了一个字符串来保存tweet的内容,并希望找到一种用空格替换不需要的字符的方法。到目前为止,我有以下几点: for char in dat
for char in data_content: #data_content is the string holding the tweet
if char in "#&/": # does not replace #
mod_data = data_content.replace(char, '')
print(mod_data)
system('say ' + mod_data)
这似乎可以正确使用“/”字符,但不能替换“#”字符。因此,在这件事上的任何帮助都是非常感谢的
另外,我已经尝试单独替换“#”字符,在这种情况下,我得到了期望的结果。但是,当我尝试提供一系列要替换的字符时,它只替换“/”字符
谢谢 您的循环总是将数据内容转换为mod_数据,因此您总是只能看到最后一次更改 假设您的字符串是
“#BBC报道了G&F的最新问题。请参阅BBC.co.uk/gf”
第一次在列表中找到字符是。
,因此:
mod_data=“BBC报道了G&F的最新问题。请参见BBC.co.uk/gf”
接下来会找到&
,但它会在数据内容中找到,因此您之前所做的更改将被忽略,您将获得:
mod#u data=“#BBC报道了GF的最新版本。请参阅BBC.co.uk/GF”
当找到/
时也会发生同样的情况,您会得到:
mod#u data=“#BBC报道了G&F的最新问题。请参见BBC.co.ukgf”
这就是为什么它看起来只适用于/
您可以简单地使用以下正则表达式执行所需操作:
import re
string = "#BBC covers the latest issues with G&F. See bbc.co.uk/gf"
mod_data = re.sub(r"[#&/]", " ", string)
print(mod_data)
system('say ' + mod_data)
我还有一个建议。由于
replace()
适用于字符串中所有出现的字符,因此不需要外部循环,因此可以将代码更改为如下内容:
import re
string = "#BBC covers the latest issues with G&F. See bbc.co.uk/gf"
mod_data = re.sub(r"[#&/]", " ", string)
print(mod_data)
system('say ' + mod_data)
mod_data=数据内容
对于“#&/”中的字符:
mod_data=mod_data.replace(字符“”)
Aaaa,这很有道理。谢谢你指出这一点!现在很有魅力。干杯