输入:-“好&&吐司&&来宾&快&慢||风||旧||新||非常好” 要求:-用“ and”替换“ &&”(类似地用“ or”替换“ ||”),所以我在上面的输出 输出应如下所示:-“好吃,好吃,好客,快,慢||风||旧||新的或很好”
我试图做的事:
import re
new_ = {
'&&':'and',
'||':'or'
}
inpStr = "good && toast&&guest &fast& slow||wind ||old|| new || very good"
replDictRe = re.compile( r'(\s%s\s)' % '\s|\s'.join(map(re.escape, new_.keys())))
oidDesStr = replDictRe.sub(lambda mo:new_.get(mo.group(),mo.group()), inpStr)
print(oidDesStr)
问题来源:stackoverflow
您可以使用
replDictRe = re.compile( r'(?<!\S)(?:{})(?!\S)'.format('|'.join(map(re.escape, new_.keys()))) )
请参见在线Python演示和regex演示。
(?<!\ S)(?:&& |||)(?!\ S)
模式表示
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。