【发布时间】:2012-05-06 19:13:33
【问题描述】:
所以我正在尝试在 python 中创建一个翻译器(在 s60 设备中)。所以我们要做的是只替换一个完整的单词而不触及其他单词。这是一个例子
原文:“棕狐跳过了名叫布朗尼的狗。” 我想把“brown”这个词换成“deathlesi”(忽略为什么) 结果应该是: “死亡狐狸跳过了一只名叫布朗尼的狗。” 但相反,它也会更改字符串中的“brownie”,从而导致: “deathlesi 狐狸跳过了名为 deathlesiie 的狗。”
由于我试图替换每一个单词,有时它会陷入一个永无止境的悖论。 例子: “我很蠢” 我正在尝试将“I”更改为“ium”,这就是发生的事情。 “iumumumumumumumumumumumumumumumumumumum.... am stupiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuim..”,它基本上改变了字符串中的每个“I”,直到字符串中没有“I”才会停止。
有什么帮助吗?谢谢!
编辑:我已经尝试过“stringhere”.replace(),但某些部分,如小写“i”通常会替换愚蠢的“i”。
这是另一个例子: “人们对巨型野兔感到兴奋。”将“are”替换为“iume”,而不是 “人们对巨型野兔感到兴奋。”它还取代了“野兔”,导致 “人们 iume 对巨大的 hiume 感到兴奋。”
假设我排列了句子并翻译了它们中的每一个。 这就是我现在的方法。基本上将每个单词转换成一个数组并转换它们中的每一个。然后做一个
translated_sentence=["particulus:people", "iume:are", "geus:getting", "exchantus:excited", "d:at", "qun:the", "gesas:giant", "hsont:hare"]
sentence= "People are getting excited at the giant hare."
for i in translated_sentence do
element=i.split(":")
sentence=sentence.replace(element[1], element[0])
它仍然抛出“particulus uime geus exchantus d qun gesas huime(而不是 hsont)”
我刚刚弄明白了。 我只是将字符串拆分为一个数组,并通过清理当前单词并对原始单词执行 string.replace() 来保留格式。
sentence="The quick brown fox jumps over the lazy dog.".split(" ")
result=""
for i in sentence:
cleaned=clean(i) #removes the punctuations and stuff leaving the raw word.
translated=translate(cleaned) #returns the translated word
result=result+i.replace(cleaned,translated)+" "
return result
【问题讨论】:
标签: python text replace language-translation