如何在python中替换字符串 例如 如果文字是“新词”,则最新词是“新词”。我想取代新的'单词' y' 如果我使用string.replace命令 以上文字将改为 “是的新词”是' 我不希望这种情况发生 理想情况下应该是 '是最新的词' 有些人可以使用python来了解如何实现这一点。
答案 0 :(得分:0)
>>> s = 'new words are newest n ew'
>>> import re
>>> re.sub(r'\bn\s*e\s*w\b', 'y', s)
'y words are newest y'
'\bn\s*e\s*w\b'
是regular expression
\b
表示单词中断
n
,e
,w
分别表示字母“n”,“e”,“w”
\s*
表示零个或多个空格字符
这里给出的正则表达式可能并不完全符合您的需要。如果需要更多(或更少)限制性正则表达式,则需要准确描述规则。
答案 1 :(得分:0)
如果你不想弄乱正则表达式(虽然我建议你这样做因为它们太强大了),因为它们很难掌握,你可以尝试以下方法:
使用list
的每个字词创建string
,然后遍历list
并替换每个字词,如果它与string
' new&#39匹配;。然后将list
打印为string
(或者您可以以相同的方式将其添加到新/旧变量中)
wordy = 'new words are newest n ew'
wordy_list = wordy.split()
for i, x in enumerate(wordy_list):
if x == 'new':
wordy_list[i] = 'y'
print(' '.join(wordy_list))
您还可以编写一行lambda函数,它执行与以下相同的操作:
wordy = 'new words are newest n ew'
new_replace = lambda x: x if x != 'new' else 'y'
print(' '.join([new_replace(x) for x in wordy.split()]))