Python翻译,如何只替换一个单词

2024-10-16 20:48:13 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我尝试用python(在60系列设备中)创建一个转换器。所以,我们要做的是只替换一个完整的单词而不碰其他单词。下面是一个例子

原著:“棕色狐狸跳过一只叫布朗尼的狗。” 我想把“布朗”这个词换成“死亡之神”(忽略原因) 结果应该是: “死狐狸跳过了一只叫布朗尼的狗。” 但是它也会改变字符串中的“brownie”,结果是: “死神狐狸跳过了一只名叫死神的狗。”

因为我试图替换每一个单词,有时它会陷入一个永远不会结束的悖论。 例子: “我很蠢” 我想把“我”改成“嗯”,结果就是这样。 “乌木穆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆姆。。。。它基本上改变了字符串中的每个“I”,直到字符串中没有“I”时才会停止。在

有什么帮助吗?谢谢!在

编辑:我已经试过了“stringhere.replace(),但是像小写字母“I”这样的某些部分通常会在愚蠢中替换“I”。在

下面是另一个例子: “人们对这只巨大的野兔很兴奋。”代替“是”对“我”,而不是 “人们总是对巨大的野兔感到兴奋。”它也取代了“野兔”,结果 “人们总是对巨大的蜂巢感到兴奋。”

假设我排好了句子并翻译了每个句子。 这是我现在的方法。基本上是把每个单词转换成一个数组,然后把每个单词都转换成数组。然后做一个

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 exchangtus d qun gesas huime(而不是hsont)”

我刚弄明白。 我只是将字符串拆分为一个数组,并通过清理当前单词并执行字符串。替换()到原来的单词。在

^{pr2}$

Tags: 字符串数组element单词aresentencereplace例子
3条回答

只需调用字符串的replace函数

"I am stupid".replace("I", "ium")

既然你只想找到第一次出现的情况,你只需要一种方法来跟踪它。你可以用很多方法。就这么简单:

def replacer(original, looking_for, replace_with):
   ''' A straightforward way... '''
   return original.replace(looking_for, replace_with, 1)
   #return regex.sub(replace_with, looking_for, 1)

该数字表示要替换多少个引用。如果存在两个,并且输入2,则两个引用都将被替换。在

字符串是不可变的,因此必须重新分配新字符串。每次执行replace操作时,都会生成一个新字符串。在

如果不需要内置的,也可以编写一个循环来查找第N次出现的情况。在

我建议你的文章缩短(我的意思是少用单词,多强调语法)。格式化它。 如果我没看错你的帖子,请纠正我。在

这听起来像是一个regex场景:

import re
x = "The brown fox jumps over the dog named brownie."
newstring = re.sub(r"(\s+|[:punct:]+|^)brown(\s+|[:punct:]+|$)",r"\1deathlies\2",x, flags=re.IGNORECASE)

结果是:

^{pr2}$

或者:

^{3}$

结果是:

>>> print newstring
People iume getting excited at the giant hare.

第一个捕获组(\s+|[:punct:]+|^)匹配字符串的空格、标点或开头,另一个组(\s+|[:punct:]+|$)匹配字符串的结尾。在

在进行替换时,\1和{}将puncuation或空格放回被替换的文本,使内容整洁。在

PS公司

如果你很懒,只需让捕获组(\W+|^)和{}。。。在

相关问题 更多 >