python中字符串替换的逻辑

时间:2014-11-13 04:33:43

标签: python string

如何在python中替换字符串 例如 如果文字是“新词”,则最新词是“新词”。我想取代新的'单词' y' 如果我使用string.replace命令 以上文字将改为 “是的新词”是' 我不希望这种情况发生 理想情况下应该是 '是最新的词' 有些人可以使用python来了解如何实现这一点。

2 个答案:

答案 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表示单词中断 new分别表示字母“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()]))