假设我们在python中有一个字符串,例如
'f"{var_1} is the same as {var_2}"'
或类似
"{} is the same as {}".format(var_1, var_2)
是否有一种方法可以计算字符串中存在的插入字符串的数量?
我正在尝试创建一个函数,该函数计算字符串中的插入次数。这是因为我有用于生成中间名的代码,它可以生成2或1个中间名,并且只是为了保持代码的一致性,我宁愿它计算字符串中存在的插入次数。
答案 0 :(得分:2)
您可以使用正则表达式:
import re
s = 'f"{var_1} is the same as {var_2}"'
len(list(re.finditer(r'{.+?}', s)))
输出:
2
答案 1 :(得分:0)
在简单的情况下,您只需算出大括号的数量即可
nsubst = "{var_1} is the same as {var_2}".count("{")
对于复杂的情况,这是行不通的,并且没有简单的解决方案,因为您需要执行格式语法的完整解析器或处理很多特殊情况(问题是例如在字段中使用大括号或嵌套字段替换)格式规格)。此外,对于f-string
而言,您可以将相当多的有效python表达式的子集作为字段,包括文字嵌套字典,而且事情甚至更复杂。