替换Python中的通用字符串为另一个东西

2024-03-29 13:01:43 发布

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

我基本上有可能是这样的弦

str1 = "Z (X) Z"
str2 = "Z .X. Z"
str3 = "Z 'X' Z"

X可以是任何东西,也可以是Z:例如:

^{pr2}$

我需要的是用别的东西代替X,但是如果X可以是任何东西,我怎么能做到呢?我必须推断由“.”、“()”、“'”(X部分)分隔的字符串部分,并用其他内容替换它。Z部分也可以是任何东西,它们不应该被考虑,X的东西也可以在字符串的中间找到,所以我不能使用这个:

str1 = ".X."
str_to_be_changed = str1[1][-1]
str1.replace(str_to_be_changed, "Y")

谢谢:)


Tags: to字符串内容bereplacechangedstrstr1
2条回答

将正则表达式与替换函数一起使用:

import re

def change_string(string, replacement):
    def repl(match):
        o, c = match.group('open'), match.group('close')
        if o + c in ('..', "''", '()'):
            return '{}{}{}'.format(o, replacement, c)
        return match.group(0)
    return re.sub(r"(?P<open>['.(]).*?(?P<close>['.)])", repl, string)

repl()函数在替换之前验证开头和结尾字符是否匹配。在

演示:

^{pr2}$

尝试使用str.format()

例如:

l = ".{}."
print l.format("mything")
'.mything.'

相关问题 更多 >