所以我正在尝试在 python 中创建一个翻译器(在一个 s60 设备中)。所以我们要做的就是只替换一个完整的单词而不触及其他单词。这是一个例子
原文:“棕狐跳过了名叫布朗尼的狗。” 我想把“brown”这个词替换成“deathlesi”(忽略为什么)结果应该是:“the deathlesi fox jumps over the dog named brownie”。但相反,它也改变了字符串中的“brownie”,结果为:“the deathlesi fox jumps over the dog named deadlesiie”。
由于我试图替换每一个单词,有时它会陷入一个永无止境的悖论。示例:“我很愚蠢” 我正在尝试将“I”更改为“ium”,这就是发生的情况。“iumumumumumumumumumumumumumumumumumumum....am stupiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuim..”,它基本上改变了字符串中的每个“I”,直到字符串中没有“I”才停止。
有什么帮助吗?谢谢!
编辑:我已经尝试过 "stringhere".replace() 但某些部分,如小写字母 "i" 通常会替换愚蠢的 "i"。
这是另一个例子:“人们对巨型野兔感到兴奋。” 将“are”替换为“iume”,而不是“人们 iume 对巨型野兔感到兴奋”。它还取代了“hare”,从而导致“人们 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