如何在python中解析字符串中的字符串替换字段?

2024-09-28 17:02:12 发布

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

Python有string replacement fields的概念,例如mystr1=“{replaceme}其他文本…”,其中{replaceme}(替换字段)可以通过mystr1.format(replaceme=“yay!”)等语句轻松格式化

因此,我经常处理大字符串,有时不知道所有替换字段,需要手动解析它们,如果是一个或两个字段,这也不算太糟糕,但有时是几十个,如果python有类似于dict.keys()的函数就好了

如何在python中解析字符串中的字符串替换字段


Tags: 函数字符串文本format概念fieldsstring手动
1条回答
网友
1楼 · 发布于 2024-09-28 17:02:12

我在下面编写了一个helper函数来代替社区的答案,将替换字段吐出到dict中,然后我可以简单地将值更新为我想要的值并格式化字符串

有没有更好的方法或内置的方法来做到这一点

cool_string = """{a}yo{b}ho{c}ho{d}and{e}a{f}bottle{g}of{h}rum{i}{j}{k}{l}{m}{n}{o}{p}{q}{r}{s}{t}{u}{v}{w}{x}{y}{z}"""
def parse_keys_string(s,keys={}):
    try:
        print(s.format(**keys)[:0])
        return keys
    except KeyError as e:
        print("Adding Key:",e)
        e = str(e).replace("'","")
        keys[e]=e
        parse_keys_string(s,keys)
        return keys
cool_string_replacement_fields_dict = parse_keys_string(cool_string)
#set replacement field values
i = 1
for k,v in cool_string_replacement_fields_dict.items():
    cool_string_replacement_fields_dict[k] = i
    i = i + 1
#format the string with desired values...
cool_string_formatted = cool_string.format(**cool_string_replacement_fields_dict)
print(cool_string_formatted)

相关问题 更多 >