Python正则表达式替换除少数单词外的所有内容

2024-09-20 04:10:09 发布

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

假设您有以下字符串:

"badger randomword badger mushroom mushroom somethingelse"

我想保留“獾”和“蘑菇”两个词,用“蘑菇”代替其他词:

^{pr2}$

但是我找不到一个正则表达式来匹配“除了獾和蘑菇”这个词。你能帮助我吗?在


Tags: 字符串badger蘑菇randomwordpr2somethingelsemushroom
3条回答

这会有用的

(?!\bbadger\b|\bmushroom\b)\b[^\s]+\b

Regex Demo

Python代码

^{pr2}$

Ideone Demo

执行此任务的简单非regex oneliner将是-

new_string = ' '.join(word if word == 'badger' else 'mushroom' for word in original_string.split())

我建议不要在这里使用复杂的正则表达式,因为在Python中是Beautiful Is Better Than Ugly。在

您可以将^{}与函数参数一起使用,这将使模式非常简单:

import re

s = "badger randomword badger mushroom mushroom somethingelse"
re.sub('\w+', lambda x: 'badger' if x.group(0) == 'badger' else 'mushroom', s)

相关问题 更多 >