gpt4 book ai didi

Python - 用本身加上特殊字符替换字符串而不考虑大写和小写

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:08 29 4
gpt4 key购买 nike

给定一个字符串:

s = "abc, Abc, aBc, abc-def, abca"

还有一句话:

w = "abc"

我想按以下方式修改s:

!+abc+!, !+Abc+!, !+aBc+!, abc-def, abca

换句话说,我想替换所有 abc 的出现,无论其中的小写字母还是大写字母,它本身前面是 !+ ,后面是 +!.

我已经知道我的问题与这个问题非常相似: Match string in python regardless of upper and lower case differences

不过,它仍然略有不同。

目前我的解决方案很脏,无法正常工作:

s = "abc, Abc, aBc, abc-def, abca"
w = "abc"
if w in s:
s = s.replace(w, "!+"+w+"+!")
if w.title() in s:
s = s.replace(w.title(), "!+"+w.title()+"+!")

最佳答案

即使没有正则表达式也非常简单。

>>> ', '.join('!+{}+!'.format(x) if x.lower()==w else x for x in s.split(', '))
'!+abc+!, !+Abc+!, !+aBc+!, abc-def, abca'

编辑:使用列表理解而不是生成器理解更快,所以

', '.join(['!+{}+!'.format(x) if x.lower()==w else x for x in s.split(', ')])

应该是首选。阅读this特别是 Raymond Hettinger 的问题和答案。

关于Python - 用本身加上特殊字符替换字符串而不考虑大写和小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43559414/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com